随笔分类 -  树上问题

树上问题
摘要:https://csacademy.com/contest/archive/task/yurys-tree https://csacademy.com/submission/2761667/ 题解: kruskal重构树的$log^2$做法非常显然,这里就不讲了。 这里讲讲有根树的点分治做法。 依旧 阅读全文
posted @ 2020-08-02 22:48 Cold_Chair 阅读(318) 评论(0) 推荐(0)
摘要:题目大意: 给一棵$n$个点的树,选$k=1 \sim n$条不相交边,使得权值和最大。 \(n \le 2 \times 10^5\) 题解: 考虑设$f[i][j][0/1]$表示$i$子树里选了$j$条边,$i$选了没有的最大值。 猜性质,它是凸的。 那么就可以闵科夫斯基和快速合并两个这样的数 阅读全文
posted @ 2020-07-21 21:37 Cold_Chair 阅读(303) 评论(0) 推荐(0)
摘要:http://uoj.ac/problem/7 记$dis[i]$为到根的距离。 dp就是: $f[i]=min(f[j]+(dis[i] dis[j]) p[i]+q[i])$ 可行的$j$是$i$到一个祖先的一条链。 考虑树是一条链的时候,直接扫过去并用线段树维护下凸壳,查询就线段树上每个区间二 阅读全文
posted @ 2020-04-30 15:26 Cold_Chair 阅读(191) 评论(0) 推荐(0)
摘要:https://loj.ac/problem/3210 过了这么久看看自己要多久才能切这题,发现还是想歪了一次。 先考虑暴力的做法。 还是贪心的逐位确定,逐位确定判有没有解,相当于下面的问题: 树上有一些路径,一条路径表示要把$x$的数字换到$y$去,问有没有解。 对于一条路径$p[1],p[2], 阅读全文
posted @ 2020-04-24 12:19 Cold_Chair 阅读(929) 评论(0) 推荐(0)
摘要:https://loj.ac/problem/2072 这个题只要求出以每个点为根的有根(无标号)树的hash值就好了。 我以前的树哈希是把树转为括号序,这个太麻烦了。 一种方法是每个点的权值定义为siz,找到一个dfs序,使得经过的点的权值字典序组最小。 这个对于这道题也不方便,因为换根是可能需要 阅读全文
posted @ 2020-04-17 15:36 Cold_Chair 阅读(224) 评论(0) 推荐(0)
摘要:https://loj.ac/problem/2524 类似于NOI ONline T1, 对于一棵树,不难发现,当黑点个数为奇数时,一定无解,为偶数时,一定可以调整出唯一一组解。 如果额外加一些非树边,那么不管非树边怎么选,树边都有办法调整,所以方案数是$2^{非树边数}$ 考虑删掉一个点时,也就 阅读全文
posted @ 2020-04-17 12:44 Cold_Chair 阅读(158) 评论(0) 推荐(0)
摘要:https://loj.ac/problem/2496 这题给我感觉才是day1 最简单的题,一点都不毒瘤。 先考虑保留一个生成树,对于非树边,我们可以容斥,选其中$i$条边,使得这$i$条边一定不合法,也就是这$i$条边对应的点一定选,容斥系数是$( 1)^i$ 暴力就容斥完之后再做个树形dp,时 阅读全文
posted @ 2020-04-13 16:54 Cold_Chair 阅读(254) 评论(0) 推荐(0)
摘要:https://loj.ac/problem/510 对于$n2$时add循环很多次。 比如$k=3$,一开始最低位$=1$,每次$ 2~mod~k$,会在1、2、1、2循环,就达到了$O(n)$。 考虑k是奇数,会一直在一位循环,$x$到$x+low(x)$形成的森林其实是若干条链,因为不可能有其 阅读全文
posted @ 2020-04-09 19:32 Cold_Chair 阅读(296) 评论(0) 推荐(0)
摘要:https://loj.ac/problem/3014 题解 对于一个点x,合法的y一定在它到最远点的路径上。 而一个点x的最远点一定是直径的一个端点。 那么以直径的端点做根,每一个点x在距离较大的那个根上统计答案。 那么就是求每个点x到根路径上的合法的y的不同颜色数。 先对树进行长链剖分,设son 阅读全文
posted @ 2020-03-13 21:09 Cold_Chair 阅读(221) 评论(0) 推荐(0)