二分
HumveeA6
这个作者很懒,什么都没留下…
展开
-
二分 模板
自用二分模板,要注意中间的mid值问题,很可能因为不谨慎而造成死循环或是漏过正解 while (left <= right) { mid = (left + right) >> 1; //这里代表检查中间的值,具体怎么检查因题而异 if (mid >= m) { if (m ==原创 2018-02-01 22:29:18 · 189 阅读 · 0 评论 -
Educational Codeforces Round 40 G. Castle Defense
题目要求最大化最小值,因此肯定要二分答案了; 那么二分了之后怎么检查呢?对于从左往右的第i个城堡,如果它的防御值不满足二分的x的话, 那么考虑到他左边的城堡都满足了这个x值,因此弓箭手肯定加在i+rad上最佳。 然后怎么扫,一开始以为要用线段树或者树状数组维护前缀和,然后都tle GG了 后来发现其实拿两个指针,一个指向左边,一个指向右边,维护这一段的和即可,每次检查复杂度大概是线性的,可...原创 2018-03-24 20:54:11 · 237 阅读 · 0 评论