随笔分类 - 算法基础——二分答案
摘要:CodeForces - 715B 先判断impossible的情况1. 0边全赋值为1,此时最短路>L2. 0边全赋值为inf,此时最短路<L 我们按读入顺序对0边进行排列,然后我们二分找到第一个必经0边,假设它在0边中的下标是第i个,那么1~i的0边为1,i+1~cnt的0边为inf(就是这些边
阅读全文
摘要:二分答案出最小距离,dpcheck,单调队列优化dp #include <iostream> #include <cstdio> #include <queue> #include <algorithm> #include <cmath> #include <cstring> #define inf
阅读全文
摘要:P1487 失落的成绩单a[i]=a[i-2]-2.0*a[i-1]+2.0*d;a[2]越大,a[3]越小a[3]越大,a[4]越小所以a[2]越大,a[4]越大,a[3]越小就有了单调性,分奇偶进行二分细节:二分的时候,l不一定为0,1e10为浮点数,eps小点好
阅读全文
摘要:P1404 平均数二分答案,问题在于怎么O(n)check,把每个数都-mid,然后求前缀和,有点像最大子段和,精度问题的话就都乘1000
阅读全文
摘要:Swimming Balls https://vjudge.net/contest/318752#problem/J如果直接算,各种球的情况都不清楚,因为放一个球之后,水位的变化也会影响之前放入的球,不如,二分最终的水位高度,这样每个球的贡献就有了
阅读全文
摘要:贪心+二分答案 二分最终答案长度 主要问题在check上 ~~我代码写得巨丑,大家还是不要看我的代码了~~ 1:当mid大于1的时候,贪心策略是这样的: 当前连续的长度大于mid时,我不反转最后一个,我也不管它具体反转哪一个,我直接跳过这mid+1个,也就是开始处理i+1。举个例子,mid=3,k=
阅读全文
摘要:P1168 中位数树状数组+二分答案。树状数组就是起一个高效查询比二分出来的数小的有几个。
阅读全文
摘要:P1510 精卫填海二分答案二分背包容量,判断能否满足v。判断的话就跑01背包就好了。
阅读全文
摘要:洛谷P1372 又是毕业季I 对于答案a,k*a是最接近n的,即a=n/k(下取整),所以直接输n/k即可。 我的方法是 二分查找 n/k真的没有想到唉。 我找的最大公约数,如果当前的mid对应的个数比k大,就往大了找,否则往小里找,对于边界问题,要加一些特判。
阅读全文
摘要:洛谷P1396 营救 多种解法: 1.spfa,只是松弛操作时更新的是路径上最大值的最小值;(最慢。。24ms) 2.Kruskal 从小到大加边,直到getfather(s)==getfather(t),然后输出当前边权;(最快。。4ms) 3.Bfs+二分答案,二分出来mid,然后用边权小于mi
阅读全文