LINK:Spiders Evil Plan 非常巧妙的题目. 选出k条边使得这k条边的路径覆盖x且覆盖的边的边权和最大. 类似于桥那道题还是选择2k个点 覆盖x那么以x为根做长链剖分即可. 不过这样过不了. 还是考虑树的直径 可以发现覆盖x的那些点一定有一个是树的直径的两端之一. 所以我们直接对两条直径分别做这个东西然后想办法覆盖x. 如果y条边x还没被覆盖. 可以发现此时调整只有两种情况. 去掉长度最小的链然后把x所在的最长链加上去. 可以把x向上的被加入的链的下半部分去掉换成x. 由于边权…
[BZOJ3252]攻略(长链剖分,贪心) 题面 BZOJ 给定一棵树,每个点有点权,选定\(k\)个叶子,满足根到\(k\)个叶子的所有路径所覆盖的点权和最大. 题解 一个假装是对的贪心: 每次选择最大的路径,然后将路径上所有点的权值清零. 那么我们可以用长链剖分来实现这个贪心. 链长改为最大的路径权值和,这样子把每条重链的权值丢进一个堆里面取\(k\)次即可. 正确性自己\(YY\)一下,发现是对的 #include<iostream> #include<cstdio> #in…
攻略 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 889  Solved: 423[Submit][Status][Discuss] Description 题目简述:树版[k取方格数] 众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏.今天他得到了一款新游戏<XX 半岛>,这款游戏有n个场景(scene),某些场景可以通过不同的选择支到达其他场景.所有场景和选择支构成树状 结构:开始游戏时在根节点(共通线),叶子节点…
LINK:H2O 这场比赛打的稀烂 爆蛋. 只会暴力.感觉暴力细节比较多不想写. 其实这道题的难点就在于 采取什么样的策略放海绵猫. 知道了这一点才能确定每次放完海绵猫后的答案. 暴力枚举是不行的.而我们又想不到怎么做? 此时需要考虑一维的情况 化简问题 在数轴上进行贪心. 可以发现全局最大值挡住了左右两边 也就是说左右两边是完全独立的. 继续思考 递归左边此时区间全局最大值也是如此. 一个容易观察到的是 l和r相邻 较大的那个一定在较小之后选择. 那么其实就是递归所有的地方来比较 从而进行选择…
[CF1009F]Dominant Indices(长链剖分) 题面 洛谷 CF 翻译: 给定一棵\(n\)个点,以\(1\)号点为根的有根树. 对于每个点,回答在它子树中, 假设距离它为\(d\)的点有\(f_d\)个,求最大的\(f_d\),并且输出\(d\),如果有多个\(f_d\)相同,输出最小的\(d\). 题解 这个东西和深度相关,很显然可以直接用长链剖分维护,时间复杂度\(O(N)\) 这道题目要维护的东西其实也很类似于\(dsu\ on\ tree\),但是复杂度会多个\(log…
Codeforces 题目传送门 & 洛谷题目传送门 %%%%% 这题也太神了吧 storz 57072 %%%%% 首先容易注意到我们选择的这 \(y\) 条路径的端点一定是叶子节点,否则我们总可以将其调整到叶子节点并使答案不会更劣,并且如果非必须(\(2y\le\) 树中叶子节点的个数),我们选择的这 \(y\) 个路径的 \(2y\) 个端点一定两两不相同,否则我们还是可以调整重复的叶子节点的位置使答案不变劣. 其次我们还可以发现,对于固定的 \(2y\) 个叶子节点,我们总存在一种选法使…
[CF526G]Spiders Evil Plan(贪心) 题面 洛谷 CodeForces 给定一棵树,要求选择\(y\)条链,满足被链覆盖的所有点在树上联通,且\(x\)必定在联通块中. 对于每次询问最大化被链覆盖的边的权值和. 强制在线. 题解 假设我们只有一次询问,会怎么做? 显然以\(x\)为根,如果\(x\)的度数大于\(1\),那么可以转化为选择\(2y\)个叶子节点,这样子一定存在一种方案满足链并恰好是\(x\)到这\(2y\)个节点的链的并. 如果\(x\)的度数为\(1\)的…
题目大意: 给出一个$n(n\leq 10^5)$个结点的带边权的树,$q(q\leq 10^5)$个询问,每次询问用$y$条路径覆盖整棵树且覆盖$x$至少一次,最多能覆盖的道路长度是多少? 强制在线. 思路: 考虑固定$x$时的情况,我们可以使用长链剖分,然后贪心地选择$2y$条长链,每$2$条可以组成一条路径,这样就找出了$y$条路径的最优方案,均摊复杂度$O(n)$. 现在考虑$x$不固定的情况,对于每个询问分别做一次长链剖分,复杂度是$O(nq)$的,显然会超时. 考虑如何只用一次树剖解…
由于做的时候看的是中文题面,第一遍写就被卡题意了:还以为每一条都要过x,那么就是一道动态树根选择2y个叶子的奇怪题目 交完0分gg,才发现题目看错了╮(╯▽╰)╭ the node containing the candy is adjacent to at least one rope covered with a web 完全就是两道题啊..... 首先考虑没有x的做法 贪心显然是对的 1.直径一定要取,否则一定可以通过把与直径最接近(以直径一段为根的lca深度最大)的一条路径改为直径来改善…
要求每个点子树中节点最多的层数,一个通常的思路是树上启发式合并,对于每一个点,保留它的重儿子的贡献,暴力扫轻儿子将他们的贡献合并到重儿子里来. 参考重链剖分,由于一个点向上最多只有$log$条轻边,故每个点最多被合并$log$次.但这不是这题想说的. 由于我们只保留以深度为下标的信息,重链剖分就会多算,以此引出长链剖分,权且作为一个模板来学习. 长链剖分时,每个点以最深的儿子作为长儿子,其余为短儿子. 每个点$O(1)$继承长儿子的信息,将短儿子的信息合并上来.每个点只有作为短儿子时才保留以它为…