随笔分类 -  二分

摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4488 [算法] 不妨首先枚举左端点 注意到对于任意一个正整数n , 其质因子个数是log(n)级别的 , 故最大公约数最多降log(n)次 用稀疏表维护区间gcd 枚举左端点L , 二 阅读全文
posted @ 2019-05-26 22:31 evenbao 阅读(266) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1169 [算法] 首先DFS枚举出横着切的 然后二分 + 贪心即可 时间复杂度 : O(2 ^ N * N ^ 2logN) [代码] 阅读全文
posted @ 2019-04-27 11:17 evenbao 阅读(168) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2806 [算法] 首先建立广义后缀自动机 注意到问题具有单调性 , 不妨对于每组询问二分答案mid 如何检验? 记fi表示前i个字符最多能选几个 , 有转移方程 : fi = max{ 阅读全文
posted @ 2019-03-29 21:18 evenbao 阅读(206) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2298 [算法] 考虑用总人数 - 最多人说真话 显然 , 对于每个人 , 如果他说的是真话 , 那么他的排名必然在[ai + 1 , n - bi]中 , 否则不合法 统计出每个合法区 阅读全文
posted @ 2019-03-29 20:57 evenbao 阅读(154) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2653 [算法] 显然 , 问题具有单调性 , 不妨对于每组询问首先二分答案mid 将大于等于mid的数看作1 , 小于mid的数看作-1 , 问题转化为判断是否有左端点在[l1 , r 阅读全文
posted @ 2019-03-29 20:30 evenbao 阅读(167) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3993 [算法] 首先发现问题具有单调性 , 不妨二分答案mid 考虑网络流 : 将源点向每个"激光武器”连一条流量为mid * Bi的边 将每个“激光武器”向每个其可以攻击的“机器人” 阅读全文
posted @ 2019-03-17 22:05 evenbao 阅读(160) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5335 [算法] 首先发现答案具有单调性 , 不妨二分答案mid 将所有权值小于mid的 , 且在原图上可以互相到达的点连边 那么我们需要判断新图的最小可重路径点覆盖是否 <= n + 阅读全文
posted @ 2019-03-16 23:02 evenbao 阅读(231) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5343 [算法] 对于每组询问 , 首先二分答案 显然 , 最优策略为优先选择价格低的 建立可持久化线段树 , 简单维护即可 时间复杂度 : O(NlogN ^ 2) [代码] 阅读全文
posted @ 2019-03-15 23:13 evenbao 阅读(284) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4556 [算法] 不难发现 , 对于每个询问 ans = max{ min{b - i + 1 , lcp(i , c) } (a <= i <= b) 不妨二分答案mid , 那么问题 阅读全文
posted @ 2019-03-02 08:34 evenbao 阅读(220) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4571 [算法] 二分 + 可持久化线段树逐位确定答案的每一位即可 时间复杂度 : O(NlogN^2) [代码] 阅读全文
posted @ 2019-02-10 21:28 evenbao 阅读(232) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2726 [算法] 此题与POJ1180非常相似 但是 , 此题中的t值可能为负 , 这意味着不能每次都将斜率 <= k的点弹出 , 而需要在凸壳中进行二分查找 时间复杂度 : O(Nlo 阅读全文
posted @ 2019-02-06 22:19 evenbao 阅读(289) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3196 [算法] 树套树即可 笔者的这份代码使用的是线段树套伸展树 时间复杂度 : O(NlogN ^ 3) [代码] 阅读全文
posted @ 2018-12-27 21:56 evenbao 阅读(223) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4592 [算法] 对于操作1 , 我们首先查询区间[l0 , r0]中有多少个1 , 然后二分求出最大的x(x <= r1)使得[l1 , x]中0的个数 <= [l0 , r0]中1的 阅读全文
posted @ 2018-12-08 20:17 evenbao 阅读(191) 评论(0) 推荐(0)
摘要:[题目链接] 铺设道路 : https://www.luogu.org/problemnew/show/P5019 货币系统 : https://www.luogu.org/problemnew/show/P5020 赛道修建 : https://www.luogu.org/problemnew/s 阅读全文
posted @ 2018-11-28 22:38 evenbao 阅读(354) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2678 [算法] 首先不难想到如下DP : 记f[i]表示前i本书的高度和最小值 显然 , 有状态转移方程 : f[i] = min{ fj + max{hj+1 , hj+2 , .. 阅读全文
posted @ 2018-11-07 21:36 evenbao 阅读(239) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2654 [算法] 给白色边都加上一个值,会使得最小生成树上的白边数量减少,不妨二分给白色边加上的值 , 检验答案时用Kruskal求最小生成树即可 时间复杂度 : O(NlogN) [代 阅读全文
posted @ 2018-10-30 18:50 evenbao 阅读(171) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1189 [算法] 首先 , 答案具有单调性 , 不妨二分答案” 第mid秒是否可以完成疏散 ” 检验时 , 首先通过广度优先搜索BFS求出每扇门到每个空地的距离 然后建图 , 判断最大流 阅读全文
posted @ 2018-10-27 12:15 evenbao 阅读(187) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5139 [算法] 二分答案 时间复杂度 : O(NlogN^2) [代码] 阅读全文
posted @ 2018-10-15 21:06 evenbao 阅读(326) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5142 [算法] 首先用RMQ预处理S数组的最大值 然后我们枚举右端点 , 通过二分求出合法的 , 最靠右的左端点 , 用这段区间的最大值更新答案 , 即可 时间复杂度 : O(Nlog 阅读全文
posted @ 2018-10-15 20:29 evenbao 阅读(262) 评论(0) 推荐(0)
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4552 [算法] 首先 , 二分答案x , 将比x小的数看作1,比x大的数看作0 然后用线段树检验即可 时间复杂度 : O(MlogN^2) [代码] 阅读全文
posted @ 2018-10-10 22:17 evenbao 阅读(169) 评论(0) 推荐(0)