树形DP
_xgcxgc
一名热爱看番的OIer,
热爱OI,
热爱二次元,
热爱这个世界。
展开
-
[ZJOI2008]骑士 基环树树形DP
Description 给你n个节点,第i个节点不能与b[i]共存,权值为a[i],让你求一个集合使这个集合点权最大。Sample Input 3 10 2 20 3 30 1Sample Input 30看到这道题首先会想到没有上司的晚会那题。 然后考虑做树形DP,然后我就不会做了,因为他有环。。。 然后我就上网查到了基环树这个东西,膜了一波。 你想这个图实际上是个无向图,且一个原创 2018-04-19 19:09:23 · 224 阅读 · 0 评论 -
BZOJ4316: 小C的独立集 圆方树+树形DP
Description 求一个仙人掌无向图最大独立集。Sample Input 5 6 1 2 2 3 3 1 3 4 4 5 3 5Sample Output 2先建圆方树。 建好后做树形DP。 对于每一个环,将它拆环分两种情况讨论。 其他的点直接树形DP。 圆方树,唔#include <cstdio>#include原创 2018-09-07 19:16:03 · 285 阅读 · 0 评论 -
ABBYY Cup 2.0 - Hard F2. Representative Sampling 虚树+树形DP
Description给你n个字符串,让你选出k个字符串使它们的价值最大,定义一个集合的价值为两两最长公共前缀和。Sample Input3 2ababzdabqSample Output2你可以先建出一个字典树,建出一个虚树。然后节点不会超过2n个,直接树形DP即可。设f[i][j]为以i为子树选了j个。然后直接转移,你可能需要将虚树的节点离散化一下,为此狂WA不止...原创 2018-10-03 11:19:34 · 239 阅读 · 0 评论 -
AIM Tech Round 3 C. Centroids 树形DP
Description给你一棵树,问你对于每一个点是否可以在树上删掉一条边,再增加一条边,使它成为树的重心。tips:一个点成为重心的条件为它的每个子树大小不超过n/2。Sample Input31 22 3Sample Output1 1 1考虑先找到一个重心。维护一个子树总和小于等于n/2的大小的最大值,次大值。然后你往下递归的时候不断更新,就相当于把这个最大值子树...原创 2018-10-07 12:30:03 · 154 阅读 · 0 评论 -
[JLOI2016]侦察守卫 树形DP
Description给你一棵树,你选择一个点进行覆盖那么他就会覆盖所有距离他为D的节点,覆盖每个点有代价,有一些点必须被覆盖,要求最小代价。Sample Input12 28 9 12 6 1 1 5 1 4 8 10 6101 2 3 5 6 7 8 9 10 111 32 33 44 54 64 77 88 99 1010 1111 12Sample ...原创 2018-09-28 19:47:06 · 239 阅读 · 0 评论 -
Testing Round #10 D. Berland Federalization 树形DP
Description给你一棵树,最少的删掉哪些边能使得余下的至少有1个大小刚好为k的残树给出方案。Sample Input5 21 22 33 44 5Sample Output12来填坑啦。。。直接树形DP,设f[i][k]为第i个点为根,形成k大小的树的最小值。输出方案用vector即可。#include <vector>#include &...原创 2018-09-30 11:27:54 · 141 阅读 · 0 评论 -
Codeforces 1119FNiyaz and Small Degrees 树形DP+堆优化
Description现在给你一颗树,边有边权,回答nnn个询问,分别是对于x=0,1,2..(n−1)x=0,1,2..(n−1)x=0,1,2..(n−1),使得每个点的度数都不超过xxx,最小化删掉的权值。Sample Input51 2 11 3 21 4 31 5 4Sample Output10 6 3 1 0先来考虑一个给定一个xxx的做法。设f[x][0...原创 2019-04-09 19:48:38 · 306 阅读 · 0 评论