题目地址:
题意:构造一个集合,这个集合内的数字满足所给的n个条件。每一个条件都是指在[a,b]内至少有c个数在集合内。问集合最少包括多少个点。即求至少有多少个元素在区间[a,b]内。
思路:
对于题目中所说的每一个条件[a,b]内至少有c个数在集合能够表示为dis(b+1)-dis(a)>=c,能够看出是求最长路
然后题目中存在着隐藏条件。
dis表示的是在[0,i-1]的范围内,要选多少个数。数列dis是递增的,可是增量最大是1。也就是说0<=dis(i)-dis(i-1)<=1,这个式子等价于dis(i)-dis(i-1)<=1和dis(i-1)-dis(i)<=0
#include #include #include #include #include #include #include #include #include #include #include