![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树形dp
_Shmily
这个作者很懒,什么都没留下…
展开
-
2020 Multi-University Training Contest 9---- HDU--6867、Tree (树形dp)
题目连接题面:题意:给定一棵根为 111 号节点的有向树,你可以添加一条边,使得形成的有向图中的可达点对 (x,y)(x,y)(x,y) 最多。可达点对 (x,y)(x,y)(x,y) 是指能从 xxx 走到 yyy,其中 (x,x)(x,x)(x,x)也算合法的可达点对。题解:因为是有向有根树,那么根节点可以到达所有的节点,那么最优的连接方式一定是从某个叶子节点连接到根节点,这样根节点到叶子节点这条链就都变成可达所有的节点。对于根节点到叶子节点这条链上面的一点 xxx,连接叶子结点之后其增原创 2020-08-30 08:36:10 · 191 阅读 · 0 评论 -
2020 Multi-University Training Contest 5---- HDU--6820、Tree(树形dp)
题目链接题面:题意:给定一棵树,边有边权,找到一个联通块符合以下条件:(1)至多有一个节点的度数大于k。(2)边权和最大。输出最大的边权和。题解:考虑 dpdpdp 。我们设 dp[x][3]dp[x][3]dp[x][3](1)dp[x][0]dp[x][0]dp[x][0] 表示以 xxx 为根的子树内,所选的连通块节点的儿子个数都小于等于 k−1k-1k−1 的最大值。那我我们对 xxx 的儿子节点的 dp[yi][0]+edge(x,yi)dp[y_i][0]+edge(x,y原创 2020-08-25 09:29:49 · 127 阅读 · 0 评论 -
2020 Multi-University Training Contest 2---- HDU--6769、In Search of Gold(二分+树形dp)
题目链接题面:题意:给定一棵n个点的树,每条边有两个取值a[i],b[i]a[i],b[i]a[i],b[i]。给定一个正整数k,k≤20k,k\le20k,k≤20,表示这棵树有k条边选a[i]a[i]a[i],其余的边选b[i]b[i]b[i]。问在上述所有的情况当中,树的直径最短是多少。题解:我们二分一个树的直径,将上述问题转化为判定树的直径为 midmidmid 时能不能成立。我们设dp[i][j]dp[i][j]dp[i][j]表示在以 iii 为根的子树中,有 jjj 条边的边原创 2020-08-25 09:17:35 · 117 阅读 · 0 评论 -
P1273 有线电视网 (树上背包)
题目链接题面:题解:树形dp + 背包设 dp [ x ] [ i ] 为 从x 点往下共开通 i 个用户的最大值。代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>#include<cmath>#include<queue>#include<vector>原创 2020-08-25 08:08:40 · 71 阅读 · 0 评论 -
The Preliminary Contest for ICPC Asia Shenyang 2019: D. Fish eating fruit(树形dp || 点分治):
真的是诸事不顺,先被k题卡了题意。真水题被卡题意可还行。。。然后,,就没有然后了。上手这个题的时候还有半个小时,看起来挺水的一个树形dp,两遍dfs搞定。可能是因为当时感觉时间不够了,有点紧张,在第一遍dfs的时候忘了加子节点的距离和。加上就过了。题目链接:点击这里#include<iostream>#include<cstdio>#include<c...原创 2020-08-24 20:58:55 · 294 阅读 · 0 评论