随笔分类 -  数据结构------倍增求LCA

摘要:洛谷P1967:https://www.luogu.org/problemnew/show/P1967 思路 感觉2013年D1T3并不是非常难 但是蒟蒻还是WA了一次 从题目描述中看出每个点之间有许多条路径 而我们需要的是找出整条路径中最大的最小可通过量 一开始看到题目会想到是不是最大流问题 但是 阅读全文
posted @ 2018-10-22 21:34 Nanchtiy 阅读(204) 评论(0) 推荐(0) 编辑
摘要:洛谷P4281:https://www.luogu.org/problemnew/show/P4281 思路 答案所在的点必定是三个人所在点之间路径上的一点 本蒟蒻一开始的想法是:先求出2个点之间的LCA 再求出此LCA和第3个点的LCA 但是没有考虑到有可能答案所在点可能比2个点之间的LCA深度更 阅读全文
posted @ 2018-10-12 21:13 Nanchtiy 阅读(344) 评论(0) 推荐(0) 编辑
摘要:思路 运用树上倍增法可以高效率地求出两点x,y的公共祖先LCA 我们设f[x][k]表示x的2k辈祖先 f[x][0]为x的父节点 因为从x向根节点走2k 可以看成从x走2k-1步 再走2k-1步 所以对于1≤k≤logn 有f[x][k]=f[f[x][k-1]][k-1] (类似二分思想) 预处 阅读全文
posted @ 2018-10-11 22:34 Nanchtiy 阅读(217) 评论(0) 推荐(0) 编辑
摘要:洛谷P4180:https://www.luogu.org/problemnew/show/P4180 前言 这可以说是本蒟蒻打过最长的代码了 思路 先求出此图中的最小生成树 权值为tot 我们称这棵树中的n-1条边为“树边” 其他m-n+1条边为“非树边” 枚举每条非树边(x,y,z)添加到最小生 阅读全文
posted @ 2018-10-11 22:23 Nanchtiy 阅读(242) 评论(0) 推荐(0) 编辑
摘要:POJ3417:http://poj.org/problem?id=3417 思路 我们注意到由“主要边”构成一颗树 “附加边”则是非树边 把一条附加边(x,y)加入树中 会与树上x,y之间构成一个环 因此 我们称每条附加边(x,y)都把树上x,y之间的路径覆盖一次 我们只需要统计出每条“主要边”被 阅读全文
posted @ 2018-10-10 22:31 Nanchtiy 阅读(212) 评论(0) 推荐(0) 编辑

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