树dp
Aaplloo
天天都想摆
展开
-
[CF 629E] Famil Door and Roads
我选择先写题解再做题。 思考阶段 我们似乎可以考虑计算:总边数 以及 总长度 如果 aaa 与 bbb 有祖先关系? 总边数: 似乎是 aaa 的子树内方案数乘 bbb 的子树外方案数? (方案数就是子树大小?) 总长度: 这个有点不好算了,难道是: (aaa 的子树内所有路径总长乘 bbb 的子树外方案数)+(bbb 的子树外所有路径总长乘 aaa 的子树内方案数)+(a−ba-ba−b之间链长乘总边数)? 如果 aaa 与 bbb 无祖先关系? 总边数: 似乎是 aaa 的子树内方案数乘原创 2020-07-31 16:52:45 · 167 阅读 · 0 评论 -
[CF 960E] Alternating Tree
每个人也许都有自己不同的做题节奏和方法,做好自己就行原创 2020-07-31 09:40:06 · 182 阅读 · 0 评论 -
[CF 1249F] Maximum Weight Subset
题目 洛谷 题意 给定一棵含 nnn 个节点的树,每个节点含一个点权 a[i]a[i]a[i]。现在请你选出一些节点,使得这些节点的权值和最大并且这些节点中任意两个节点的距离都 >k>k>k。并输出这个最大的权值。 思路 一道似乎有很多时间复杂度做法的题?因为数据规模开的实在是太小了,只有 200200200,所以 n3,n2,nn^3,n^2,nn3,n2,n 都可以过,n4n^4n4 的卡卡也能过?对于很多算法,还没来得及研究,这里讲一种较为常规的 n2n^2n2 的树形 dp\tt原创 2020-07-30 12:35:16 · 181 阅读 · 0 评论 -
[CF 734E] Anton and Tree
题目 洛谷 题意 有一棵树,每个点初始有黑白色,每次操作将一个同色连通块颜色翻转——至少多少次翻转能让整张图颜色相同。 思路 首先,可以想到:一开始可以将同色的连通块缩成一个点——这点很显然,就不说明了。 缩点后,得到一张黑白分层图。现在是在这张黑白分层图上得到答案。怎么做呢?给出一个结论——答案为缩点后图的直径加一除以二。即记直径为 ddd,Ans=(d+1)/2Ans=(d+1)/2Ans=(d+1)/2 证明 现在考虑如何证明这个结论:懒得搞图,就不放图了。——刚刚本来还准备证一番,PPL\tt PP原创 2020-07-30 10:13:59 · 163 阅读 · 0 评论 -
[CF 77C] Beavermuncher-0xFF
学好树形dp!原创 2020-07-30 09:12:37 · 162 阅读 · 0 评论 -
[CF 1223E] Paint the Tree
前言 竟然是一道自己做出来的树形dp\tt dpdp! 题目 洛谷 思路 很简单(毕竟我都做出来了)。 设计 dp[i][0/1]dp[i][0/1]dp[i][0/1] 为 iii 号点是否选父边的答案,考虑转移即可。 Code struct node { LL v, w; node(){} node(LL V,LL W) { v = V; w = W; } }; vector<node> G[MAXN]; LL dp[MAXN][2], n, k; bool cmp(LL原创 2020-07-30 08:13:51 · 148 阅读 · 0 评论 -
[CF486D] Valid Sets
前言 话说自己觉得区间dp\tt dpdp学的还行,但是做题速度慢了些,也不完全是学得太慢的原因,效率也很重要。希望学树形dp\tt dpdp这个版块时能百尺竿头更进一步。 题目 洛谷 话说数据范围是 n,d<=2000n,d<=2000n,d<=2000 思路 考虑树形dp\tt dpdp,令 dp[i]dp[i]dp[i] 为 iii 为根节点合法子树个数。 很显然,如果只这样处理状态进行树形dp\tt dpdp,会有重复状态。这时候,我们选择对 dpdpdp 进行一些限制:我们认为,原创 2020-07-29 21:00:47 · 211 阅读 · 0 评论