Tree DP
文章平均质量分 69
BraketBN
这个作者很懒,什么都没留下…
展开
-
【BZOJ1060】[ZJOI2007]时态同步【TreeDp】
http://www.lydsy.com/JudgeOnline/problemset.php注意到时间只能增加。设dp[x]表示以x为根的子树中,到叶节点路径长度的最大值。那么dp[x] = max{dp[v] + w}。答案为∑dp[x] - (dp[v] + w)。/* Footprints In The Blood Soaked Snow */#inclu原创 2016-03-20 19:24:23 · 332 阅读 · 0 评论 -
【BZOJ2103】【BZOJ2447】Fire 消防站【DFS】【TreeDP】
【题目链接】 【题目链接】同【BZOJ3302题解】/* Pigonometry */#include #include using namespace std;typedef long long LL;const int maxn = 50005, inf = 0x3f3f3f3f;int n, head[maxn], cnt, pre[maxn], depth[原创 2016-04-04 11:33:01 · 777 阅读 · 0 评论 -
【BZOJ1131】[POI2008]Sta【TreeDP】
【题目链接】经典TreeDP。/* Pigonometry */#include #include #include using namespace std;typedef long long LL;const int maxn = 1000005;int n, head[maxn], cnt, ans, size[maxn];LL sum;struct原创 2016-04-21 14:02:29 · 367 阅读 · 0 评论 -
【Codevs1380】没有上司的舞会【树上最大独立集】【TreeDP】
【题目链接】复习一下TreeDP。1A。/* Pigonometry */#include #include using namespace std;const int maxn = 6005;int n, dp[maxn][2], w[maxn], head[maxn], cnt;struct _edge { int v, next;} g[maxn <<原创 2016-04-15 16:27:41 · 408 阅读 · 0 评论 -
【POJ3659】Cell Phone Network【树上最小点支配】【TreeDP】
【题目链接】再写一发。/* Pigonometry */#include #include using namespace std;const int maxn = 10005, inf = 0x3f3f3f3f;int n, dp[maxn][3], head[maxn], cnt;struct _edge { int v, next;} g[maxn <原创 2016-04-15 17:32:48 · 330 阅读 · 0 评论 -
【BZOJ2435】[Noi2011]道路修建【TreeDP】
【题目链接】对于u这个子树,显然如果一条边(u, v)减去之后,v这个子树就变成子问题了。TreeDP一下就行了。/* Footprints In The Blood Soaked Snow */#include #include using namespace std;typedef long long LL;const int maxn = 1000005;原创 2016-03-29 11:20:34 · 398 阅读 · 0 评论 -
【LA4015】Caves【Tree DP】
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2016题意:一棵n个点的树,从根节点出发,路程不超过s,最多可以遍历多少个点?大白上的题。还是挺不错的tree dp。设dp[u][x][0]表示u的子树中,从原创 2016-03-15 08:58:10 · 346 阅读 · 0 评论 -
【Codeforces613D】Kingdom and its Cities【虚树】【Tree DP】
http://codeforces.com/problemset/problem/613/D题意:给出n个点的树,有q个询问,每次询问给出k个重要的点,问至少删掉多少个非重要的点,使得这个重要的点都不连通。 首先对于一个询问,无解的情况肯定是有两个相邻的重要点,直接特判就行。对于其他情况,进行一次tree dp。如果当前点为非重要点,且它的子树中有至少两个重要点,那原创 2016-03-14 16:22:56 · 1036 阅读 · 0 评论 -
【HDU5647】DZY Loves Connecting【TreeDP】
【题目链接】BC的一个题。看的这篇文章。/* Footprints In The Blood Soaked Snow */#include #pragma comment(linker, "/STACK:102400000,102400000")typedef unsigned long long ULL;typedef unsigned int uint;const原创 2016-03-22 21:28:51 · 459 阅读 · 0 评论 -
【POJ2057】The Lost House【TreeDP】
【题目链接】比较经典的一道TreeDP。因为概率是相等的,所以我们只需要计算最小步数即可,最后答案再除以叶子节点个数。设leaf[u]表示以u为根的子树中叶子节点的个数。设fail[u]表示以u为根的子树中,从u出发,找房子失败后,回到u点,按最优策略走的步数。设succ[u]表示以u为根的子树中,从u出发,并成功找到房子,按最优策略走的步数。最优策略即我们要找原创 2016-04-02 18:57:53 · 457 阅读 · 0 评论 -
【BZOJ3302】[Shoi2005]树的双中心【DFS】【TreeDP】
【题目链接】考虑暴力做法,我们可以枚举删掉某条边,然后在两个子树里找重心,统计答案即可,O(n^2)的。发现树高最多100,并且发现每次转移只可能向着权值和更大的地方移动,那么我们可以记录出每个节点权值和最大的儿子。但是如果删掉一条边的时候,把这个儿子给归到另一个子树里了,所以我们还得记录次大权值和的儿子。复杂度O(nh)。设sum[x]表示x的子树中的权值和。设res原创 2016-04-04 11:15:27 · 1689 阅读 · 2 评论