
dp-树形
pocket_legend
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj4182 shopping [树形dp+点分治]
Description: 树上每个点有容量,花费,价值。你有mmm元钱,问选出一个连通块的最大价值。 Solution: 问题在于必须选出一个连通快。每次树形dp时改动一下,递归子树时去掉一份下一个节点的花费,强制选择下一个节点一次,这样就是选择一个联通块了,每次背包二进制分解一下,再用点分治优化即可。 #include <cstdio> #include <...原创 2018-03-16 08:00:50 · 362 阅读 · 0 评论 -
[JLoi 2016] bzoj4557 侦查守卫 [树形dp]
Description: 一棵树中有些黑点,在每个点上放守卫要花一定代价,守卫侦查范围为d,求覆盖所有黑点最小代价。 Solution: 这是一类树形dpdpdp。 设up[u][i]up[u][i]up[u][i]为uuu向上至少覆盖iii,down[u][i]down[u][i]down[u][i]为uuu最多只有向下iii层没覆盖。然后转移看代码。 #include &...原创 2018-03-13 15:20:23 · 231 阅读 · 0 评论 -
bzoj4987 Tree [树形背包]
Description: 从前有棵树。 找出KKK个点A1,A2,…,AkA1,A2,…,AkA_1,A_2,…,A_k。 使得∑dis(Ai,Ai+1),(1<=i<=K−1)∑dis(Ai,Ai+1),(1<=i<=K−1)∑dis(A_i,A_{i+1}),(1dpdpdp。设dp[i][j][0/1/2]dp[i][j][0/1/2]dp[i][j][0/1/...原创 2018-03-20 22:42:21 · 460 阅读 · 0 评论 -
[Heoi 2013] bzoj3167 SAO [树形dp]
Description: 一棵树,每条边上有一个不等号,求每个点填一个排列的数量。 Solution: dp[u][i]dp[u][i]dp[u][i]表示第uuu个点在子树中排名为iii的方案数,那么枚举新加入的点有多少个比uuu小。 对于u<vu<vudp[u][j+k]+=dp[u][j]∗C(k+j−1,k)∗C(sz[u]+sz[v]−j−k,sz[v]−k)∗∑...原创 2018-04-16 16:18:29 · 233 阅读 · 0 评论 -
bzoj3162 独钓寒江雪 [树hash+dp]
Description: 求树上本质不同独立集个数。 Solution: 不考虑同构是一个裸的树形dp,dp[u][0/1]dp,dp[u][0/1]dp,dp[u][0/1]表示这个选或点不选。 现在考虑同构,从重心开始dpdpdp,如果有两个重心那么中间新建一个根。 通过根的性质不难发现以一个点为根时它父亲所在的子树肯定不会跟它的其他子树同构。如果不选择重心作为根这个性质就会失去...原创 2018-04-24 18:25:29 · 293 阅读 · 0 评论