二分
文章平均质量分 78
matrix5247
这个作者很懒,什么都没留下…
展开
-
hdu5875 Function
题意:一个区间,m次询问(l,r),求a[l]%a[l+1]%...%a[r] 题解:比赛时候,想到的是二分线段树,说了以后,学弟说可能会退化,当时没多想,其实仔细想想,构造不出来那样的数据吧,线段树常数比较大,看到队友用RMQ,常数小 其实本质差不多,就是先找前一半的最小,看看是不是小于a[l],如果是,就继续在左找,没有就在右找,如果右也没有,就退 int a[1原创 2016-09-12 21:48:12 · 239 阅读 · 0 评论 -
Codeforces 689D Friends and Subsequences(二分+RMQ)
题意:给两个数列a,数列b,求有多少个区间[l,r],使得a区间的最大值等于b区间的最小值 题解:首先,满足 maxi=lrai−mini=lrbi≤maxi=lr+1ai−mini=lr+1bi 因为左端点固定,区间越大,最大值越大,区间越大,最小值越小。 然后就可以枚举左端点,二分右端点,求出所有的max-min == 0即可,区间查原创 2016-09-07 16:46:23 · 246 阅读 · 0 评论 -
hdu5493 Queue
题意:n( 题解:对于第i高的人,前面有min(x,n-x-i)个人比他高 于是我们可以从低到高为他们安排位置 可以用树状数组维护,到某个点时,前面还有多少个空位置 然后二分,查找刚好有min(x,n-x-i)+1个空位置的点,放进去这个人就可以 ///num表示身高,x表示前面或后面有多少人比他高 struct po{原创 2016-09-21 15:48:27 · 251 阅读 · 0 评论