摘要: 二段性:对于一个长度x,如果能够通过拿走不超过m个石头使得石头之间最短距离大于等于x,那么所有$\le x$的长度$t$都能够通过移动不超过m个石头达到最短距离大于等于$t$的要求。 所以可以求出移动不超过m个石头能够达到的最短距离的最大值,判断一个长度x是否满足的条件就是求出要求最短距离大于等于x 阅读全文
posted @ 2020-10-11 20:30 yys_c 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 实数二分的题。 第一次写的时候,发现这样的写法无法处理mid正好是根的情况,会重复输出mid。 巧就巧在这题的数据保证不会出现长度为1的区间内出现2个根的情况,所以可以改写代码。 原始代码 #include<iostream> #include<cstdio> using namespace std 阅读全文
posted @ 2020-10-11 16:26 yys_c 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 二段性:如果高度$h$满足要求,那么所有的满足$\le h$的高度都满足,若$h$不满足,那么所有$\ge h$的都不满足。 二分答案,找满足要求的最大$h$ 复杂度:\(O(nlog(1e9)) = O(n), n \le 1e6\) #include<iostream> using namesp 阅读全文
posted @ 2020-10-11 13:35 yys_c 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 对数组升序排序,枚举A $A-B=C$问题转化为对于A在A之前找等于$A-C$的值的个数,可以用二分做 复杂度:\(O(nlogn)\) #include<iostream> #include<algorithm> using namespace std; #define LL long long 阅读全文
posted @ 2020-10-11 12:54 yys_c 阅读(65) 评论(0) 推荐(0) 编辑