07 2017 档案

摘要:LCA的求解有3种,转化为RMQ,Tarjan离线预处理,倍增法。 RMQ法: 阅读全文
posted @ 2017-07-29 10:30 Luke_Ye 阅读(236) 评论(0) 推荐(0)
摘要:扩展欧几里得可以计算出gcd的同时,计算出一组最小特解,以表示其通解 推导过程见http://blog.csdn.net/zhjchengfeng5/article/details/7786595 其中通解: x = x0 + b*t; y = y0 + a*t; 而乘法逆元则是在计算(a/b)%m 阅读全文
posted @ 2017-07-18 16:00 Luke_Ye 阅读(216) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1156 在一张二位坐标系中,给定n个点的坐标,玩一个划线游戏(线必须穿过点),Stan先手画一条垂直的线,然后Ollie画一条水平的线(要求要穿过Stan那条线所穿过的某个点)。划分后,左上和右下点数是Ollie 阅读全文
posted @ 2017-07-18 10:29 Luke_Ye 阅读(323) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/825/problem/E 一道裸的拓扑排序题。为什么需要反向拓扑排序呢?因为一条大下标指向小下标的边可能会导致小下标更晚分配到号码,导致字典序增大。而反向拓扑排序在上述情况,只会使大序号更晚分配到序号,而小序号还是较小的,根据字典序比对规 阅读全文
posted @ 2017-07-17 15:07 Luke_Ye 阅读(325) 评论(0) 推荐(0)
摘要:http://codeforces.com/contest/831/problem/D 题目大意是在一条坐标轴上,给出n个人,k把钥匙(k>=n)以及终点的坐标,所有人都可以同时运动,但不可以公用钥匙(相当于钥匙是消耗品,可以赋予人进入终点的能力),问最少花费多少时间可以让所有人都到达终点。 分析题 阅读全文
posted @ 2017-07-16 22:50 Luke_Ye 阅读(506) 评论(0) 推荐(0)
摘要:线段树写法不管,比较灵活。这里主要讨论DP实现。 其实单纯说RMQ解决的是区间最值查询是不准确的,只要满足一个区间的信息可以从它的覆盖区间获得(即[L,R]<=[L,r],[l,R] (l<=r) ,允许两个子区间重合)即可使用。重合不影响最值判断,所以最值查询是可以用RMQ的,其次如同区间gcd, 阅读全文
posted @ 2017-07-12 16:56 Luke_Ye 阅读(614) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1806 线段树维护区间出现频率最高的出现次数。为了维护上者,需要维护线段前后缀的出现次数,当和其他线段在端点处的字符相等时,要做合并处理。 阅读全文
posted @ 2017-07-12 16:17 Luke_Ye 阅读(182) 评论(0) 推荐(0)
摘要:题目大意是给若干线段及其费用,每个线段权值即为其长度。要求找出两个不重合线段,令其权值和等于x且费用最少。 解法: 先分析一下题目,要处理不重合的问题,有重合的线段不能组合,其次这是一个选二问题,当枚举其中一条线段时,另一条合法线段的必要条件“权值”可以直接得出。 对于第一个问题,想到先对线段根据l 阅读全文
posted @ 2017-07-12 16:08 Luke_Ye 阅读(493) 评论(0) 推荐(0)
摘要:最近遇到很多有限状态机的递推计数问题,构造矩阵进行快速幂是很直观的方法。总结个模板吧。 矩阵定义: 乘法: 快速幂: 阅读全文
posted @ 2017-07-11 17:11 Luke_Ye 阅读(246) 评论(0) 推荐(0)
摘要:对单调队列的分析和说明就不赘述了,贴几个博客http://blog.csdn.net/justmeh/article/details/5844650 http://blog.csdn.net/justmeh/article/details/5844650 一般来说一个单调队列需要具备一个数组,它的头 阅读全文
posted @ 2017-07-09 16:19 Luke_Ye 阅读(204) 评论(0) 推荐(0)