E. Tree Painting(树形换根dp)】的更多相关文章

题目传送门 题意 一棵$N$个节点的树,初始时所有的节点都是白色,第一次可以选择任意一个把它涂成黑色.接下来,只能把与黑色节点原来相连的白色节点涂成黑色(涂成黑色的点视为被删去,与其它节点不相连).每一次涂的分数为涂的这个白色节点所在的联通块里的白色节点的个数.要把这$N$个节点都涂成黑色,求能获得的最大分数.(人工翻译+手打qwq,若有误差请告诉我) 分析 没有什么太大思路的题先乱搞 然后我们发现 我们在最开始随便把这棵树的其中一个节点涂成黑色之后,这个树的涂法就唯一确定了.涂了之后这棵树就会…
http://codeforces.com/contest/1187/problem/E 分析:问得分最高,实际上就是问以哪个节点出发得到的分数最多,而呈现成代码形式就变成了换根,max其得分!!!而要利用之前算过的得分来求. #include<bits/stdc++.h> using namespace std; typedef long long ll; ; vector<int>e[M]; int son[M]; ll ans; int n; void dfs(int u,i…
题面 题解 先解决第一个子问题吧,它才是难点 Subtask_1 我们可以先用一个简单的树形DP处理出每棵树内部的dis和,记为dp0[i], 然后再用一个换根的树形DP处理出每棵树内点 i 到树内每个点的距离和,记为dp[i], 好,现在分两个连通块跟三个连通块两种情况讨论 两个连通块 把两棵树A,B合并到一起,我们得先确定两个连接的点, 若其分别为 i,j,不难发现答案就是 dp0[A] + dp0[B] + dp[i] * size[B] + dp[j] * size[A] + size[…
传送门:http://poj.org/problem?id=3585 题意:给定一张无根图,给定每条边的容量,随便取一点使得从这个点出发作为源点,发出的流量最大,并且输出这个最大的流量. 思路:最近开始做树形DP这部分的题,发现存图部分不是太会,这道题需要用到邻接表存图,不熟悉的朋友可以见我的另一篇博客:https://blog.csdn.net/weixin_43820920/article/details/98610704 言归正传,这道题算是换根DP的裸题了,就是先随便找一个点做为根结点(…
题目背景 小奇采的矿实在太多了,它准备在喵星系建个矿石仓库.令它无语的是,喵星系的货运飞船引擎还停留在上元时代! 题目内容 喵星系有\(n\)个星球,星球以及星球间的航线形成一棵树. 从星球\(a\)到星球\(b\)要花费\([\text{dis}(a,b)\ \text{xor}\ M]\)秒.(\(\text{dis}(a,b)\)表示ab间的航线长度,\(\text{xor}\)为位运算中的异或) 为了给仓库选址,小奇想知道,星球\(i(1\leq i\leq n)\)到其它所有星球花费的…
题面 https://www.luogu.com.cn/problem/P5024 分析 可以对有限制的点对之间的链进行在倍增上的DP数组合并. 需要通过一次正向树形DP和一次换根DP得到g[0][i][0/1]表示以i为根的子树中i为0/1的最小代价和g[1][i][0/1]表示整棵树除了以i为根的子树i为0/1的最小代价. 然后倍增数组上减去儿子方向的DP值进行预处理.倍增数组f[i][0/1][0/1][j]表示i向上跳$2^{j}$ 次,i的状态为0/1,跳到的祖先的状态为0/1的DP值…
题意 给定一棵 \(n\) 个节点的树,可以断掉一条边再连接任意两个点,询问新构成的树的直径的最小和最大值. \(n\leq 5\times 10^5\) . 分析 记断掉一条边之后两棵树的直径为 \(A,B\) ,最长直径为 \(A+B+1\) 最短为 \(\max\{A\ ,B\ ,\lceil \frac{A}{2}\rceil+\lceil \frac{B}{2} \rceil +1\}\) . 维护每个点不同子树的前3长链和向上的最长链.不同子树的前2长路径和向上子树的最长路径. 这样…
传送门 换根dp入门题. 貌似李煜东的书上讲过? 不记得了. 先推出以1为根时的答案. 然后考虑向儿子转移. 我们记f[p]f[p]f[p]表示原树中以ppp为根的子树的答案. g[p]g[p]g[p]表示把根换成ppp时整棵树的答案. 于是有g[v]=f[v]+min(g[p]−min(e[i].c,f[v]),e[i].c)g[v]=f[v]+min(g[p]-min(e[i].c,f[v]),e[i].c)g[v]=f[v]+min(g[p]−min(e[i].c,f[v]),e[i].c…
P3761 [TJOI2017]城市 题目描述 从加里敦大学城市规划专业毕业的小明来到了一个地区城市规划局工作.这个地区一共有ri座城市,<-1条高速公路,保证了任意两运城市之间都可以通过高速公路相互可达,但是通过一条高速公路需要收取一定的交通费用.小明对这个地区深入研究后,觉得这个地区的交通费用太贵.小明想彻底改造这个地区,但是由于上司给他的资源有限,因而小明现在只能对一条高速公路进行改造,改造的方式就是去掉一条高速公路,并且重新修建一条一样的高速公路(即交通费用一样),使得这个地区的两个城市…
一道很好的换根dp题.考场上现场yy十分愉快 给定树,求每个点的到其它所有点的距离异或上m之后的值,n=100000,m<=16 只能线性复杂度求解,m又小得奇怪.或者带一个log像kx一样打一个线段树 我们可以发现,m小的话对距离很大的路径的影响也不会超过16. 那么变化的其实就是最后4个二进制位啊. 所以我们像普通的换根dp一样求出所有距离,在额外处理一下以p为端点的全部路径里路径长度%16之后的值为k的有多少个 设为bits2[k][p] 因为换根dp的主要思路是两遍dfs,第一次处理每个…