返回信息流求解今年校赛F题应该怎么做?
题目意思其实就是一个数组n个数,然后对于每个指定的数求它前边位置的比他小的最大的数,没有就是0,然后最后相加就是结果(第一个数对应0)
样例1: 1, 2, 3
则就是0 + 1 + 2 = 3
样例2: 3, 5,1, 2, 4
则就是0 + 3 + 0 + 1 + 3 = 7
虽然有同学讲题了但是还是没听懂,希望会做的同学能够仔细再讲下,十分感谢!
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #92877同步于 2017/4/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
求解今年校赛F题怎么做?
dxy1
2017/4/10镜像同步39 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 lxclxc 的大作中提到: 】
: 正常的思路会超时O(n^2),我猜可以用hash表或者二叉查找树?毕竟这是一个查找问题。
讲题的同学说是用树状数组处理下,但是没想明白怎么处理?
【 在 dxy1 的大作中提到: 】
:
: 讲题的同学说是用树状数组处理下,但是没想明白怎么处理?
其实就是构造一个线段树,维护区间最大值和最小值,然后二分搜索就好了,每次操作都是logn复杂度
【 在 gungnir 的大作中提到: 】
: 其实就是构造一个线段树,维护区间最大值和最小值,然后二分搜索就好了,每次操作都是logn复杂度
维护最大和最小值的话怎么找出来比当前值小的最大的那个数呢?