Processing math: 100%

随笔分类 -  倍增

摘要:"题目" 细节比较多的二分+跟LCA倍增差不多的思想 首先有这样一个贪心思路,深度越低的检查点越好,而最长时间和深度具有单调性,即给定时间越长,每个军队能向更浅的地方放置检查点。因此可以考虑二分时间,然后判断军队是否可以放置在控制疫情的地方。 但是有的军队需要先满足自己当前所在的节点,然后此节点如果 阅读全文
posted @ 2019-11-04 21:39 DAGGGGGGGGGGGG 阅读(397) 评论(0) 推荐(0) 编辑
摘要:"题目" 题目要求使一条边边权为0时,m条路径的长度最大值的最小值。 考虑二分此长度最大值 首先需要用lca求出树上两点间的路径长度。然后取所有比mid大的路径的交集,判断有哪些边在这些路径上都有出现,然后这些边里面取最大值当做虫洞,如果还是不行说明此mid不行。 判断边可以用把边化为点,然后树上差 阅读全文
posted @ 2019-11-04 11:41 DAGGGGGGGGGGGG 阅读(176) 评论(0) 推荐(0) 编辑
摘要:"题目" 双向链表+倍增+模拟。 70pts: 说白了此题的暴力就是细节较多的模拟题。 我们设离i城市最近的点的位置为B[i],第二近的位置为A[i]。设AB数组等于0的的情况不能接下去走到第二或第一近的位置。 1. 处理到底能不能继续向下走,即当前城市下一步无法选择城 阅读全文
posted @ 2019-10-27 16:37 DAGGGGGGGGGGGG 阅读(178) 评论(0) 推荐(0) 编辑
摘要:"题目" 此题数据范围小的话可以用区间DP,但是该题目的数据范围并不能用区间DP来求解,因此我们考虑优化DP。 每个数的生成一定是由这两个区间 考虑区间DP的弊端是并不知道每个数生成的区间是什么,所以需要枚举,而这枚举的时间就浪费了。因此考虑以区间信息为状态,在找到区间信息里比较好转移的状态 阅读全文
posted @ 2019-10-22 10:22 DAGGGGGGGGGGGG 阅读(170) 评论(0) 推荐(0) 编辑
摘要:"题目" 首先分析数据范围发现m很大,所以线性做法肯定不行,因此考虑倍增,即预处理出每个点跳1次后的位置。然后只用两个数组类似于快速幂,推出每个点跳m次后的位置。 预处理离每个点第k小的点,可以用长度为k的尺子尺取。 c++ include include include include inclu 阅读全文
posted @ 2019-10-08 18:19 DAGGGGGGGGGGGG 阅读(136) 评论(0) 推荐(0) 编辑
摘要:"题目" 倍增 直接用图论算法必然解决不了这个问题,所以可以使用倍增算法优化。 我们遇到这个题该怎么想,首先,题目要求的值是1到n的最小代价。代价是路径的二进制中1的个数。 我们先预处理出每两点之间是否有边权和为(1 define N 1000111 define int long long usi 阅读全文
posted @ 2019-09-18 14:38 DAGGGGGGGGGGGG 阅读(126) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示