随笔分类 - 二分
摘要:"题目" 细节比较多的二分+跟LCA倍增差不多的思想 首先有这样一个贪心思路,深度越低的检查点越好,而最长时间和深度具有单调性,即给定时间越长,每个军队能向更浅的地方放置检查点。因此可以考虑二分时间,然后判断军队是否可以放置在控制疫情的地方。 但是有的军队需要先满足自己当前所在的节点,然后此节点如果
阅读全文
摘要:"题目" 题目要求使一条边边权为0时,m条路径的长度最大值的最小值。 考虑二分此长度最大值 首先需要用lca求出树上两点间的路径长度。然后取所有比mid大的路径的交集,判断有哪些边在这些路径上都有出现,然后这些边里面取最大值当做虫洞,如果还是不行说明此mid不行。 判断边可以用把边化为点,然后树上差
阅读全文
摘要:"题目" 易得该题目中的n和k具有单调性,满足二分的性质,因此该题目而已用二分来枚举n,然后对于每个n模拟出它所对应的k,然后注意注意代码细节,并且当当前k等于题目要求的k时,要分别向左和右二分,才能找出所有情况。 c++ include define N 3000011
阅读全文
摘要:"题目" ) 二分好题 首先用二分找最小的绝对值差,对于每个a[i]都两个方向扫一遍,先都改成差满足的形式,然后再找a[k]等于0的情况,发现如果a[k]要变成0,则从他到左右两个方向上必会有两个连续的区间也随之变化, 然后我们有一点K, 使K点=0时,可以分别向左和右影响区间的值。并且影响之后的值
阅读全文
摘要:"题目" 二分加最短路。 因为原题中要求给定一个值n和一个次数m,使这个值尽量小的同时存在一条1到n的路径上权值大于该值的边的个数小于次数m。 此时我们发现该值和次数满足单调性,即该值越小个数越多。 因此可以用二分,再考虑如何check 可以将路上的权值是否大于n这一条件做布尔边权值,这样跑出来的最
阅读全文
摘要:"题目" 很好想的一道二分题,首先,二分一定满足单调性,而题目中非常明显的就是用的车越多,所用时间越少,所以可以枚举时间,判断是否可以比m少。 然后在二分时,更是要注意下标的一些问题,也要注意车和m作比较的顺序。 Code
阅读全文
摘要:[题目]: https://www.luogu.org/problemnew/show/P1462 题意 题目是给定了一张双向边,有边权的图,然后让我们求出一个最小值,满足一条路径上的最大的费用小于这个最小值且这条路径的所损失的血量不超过总血量。 思路 往往这种求最大值的最小值一般就是二分,然后写个
阅读全文
摘要:题目 这个难度感觉并没有那么高,因为这个题暴力也好打,但是比较难想出正解,因为如果你不看标签是很难想到这个题竟然是二分,当然前缀和应该很好想,毕竟让你求的是在某段时间内借教室的和是否满足。 这样我们可以很容易的推出借的教室的个数和订单是成正对应的,因此他可以满足单调性,所以我们就可以用上二分。 而原
阅读全文
摘要:题目 这个题也是一个很经典的题了。其主要思想也是二分答案,原因就是题目中只要出现最大值最小或最小值最大,这种描述十有八九就是二分答案。 这个题原题也是让我们求最短的跳跃距离的最大值。 显而易见,最大值肯定要在1到n之间。 所以我们就从1到n二分跳跃距离。这样就可以以log级别的时间复杂度来枚举出最大
阅读全文