二分
Winterfell30
这个作者很懒,什么都没留下…
展开
-
Codeforces 672D Robin Hood (二分)
题意有一个数列,有k天,每天可以让最大值减一最小值加一,求k天后最大值和最小值的差值。思路刚开始一直想着用什么东西维护一下,其实这个应该算是个模拟吧。 因为是把大的加到小的上面,所以我们只要看一下这个k最多能给最小值提高到多少,最多能给最大值减少到多少。 我们可以二分这两个值(找好上下界也就是最大值不能再分的时候),或者直接扫两遍也是支持的。代码#include <stdio.h>#inclu原创 2016-05-13 01:25:58 · 548 阅读 · 0 评论 -
POJ 2773 Happy 2006 (二分+容斥)
题意求与n互质的第k个数。思路显然求计数问题的第k个,我们二分出来mid以内有多少个和n互质的数就可以了。求m以内和n互质的数的个数就是那个比较经典的co prime题了。代码#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue原创 2016-05-04 17:46:27 · 501 阅读 · 0 评论 -
Codeforces 689D Friends and Subsequences (RMQ+二分)
题意求有多少对区间满足其中一个区间的最大值等于另一个区间的最小值。思路首先RMQ预处理出所有区间的最大值和最小值(线段树会超时。。。) 然后因为我们固定这两个区间的左端点枚举区间的右端点,因为右端点越大max越大min越小,所以是满足二分的单调性的。 所以这题的做法就是枚举左端点,二分右端点的max == min的左边界l和右边界r,即[i,l]到[i,r]的区间都是满足max等于min的,统计原创 2016-07-16 22:52:56 · 522 阅读 · 0 评论