ACM_树形DP
JayYe
这个作者很懒,什么都没留下…
展开
-
hdu 1561 The more, The Better 树形DP入门题
题意:中文题,简单明了。解题思路:首先将所有的可以直接攻克的城堡并在节点0的下面,然后对于每个节点,利用分组背包的思想,该节点的各个子树看成各个背包。#include #include struct EDGE { int to, next;}edge[222];int head[222], E, cnt[222], dp[222][222], val[222];v原创 2013-07-18 15:27:14 · 794 阅读 · 0 评论 -
POJ 1155 TELE 树形DP
题意:给你一棵树,root为电视台,每个叶子节点为潜在的用户,其他节点为为讯号传播的中转站,每条边都有权值,如果信号发送到某个叶子节点,将收到用户交的费用,但是经过的边都要消耗费用,问最多能发送到几个用户且不亏本,不赚不亏也算。对于每个节点,节点的子树都为一个背包,由此进行分组背包即可。#include #include #define INF 1111111111原创 2013-07-18 15:39:28 · 958 阅读 · 0 评论 -
POJ 1947 Rebuilding Roads 树形DP
题意:给你一颗树,问最少要去掉多少边才能得到一颗节点数为p的树把节点1当做根节点,对于每一个节点,dp[u][i]表示节点u保留i个点最少去边数,我是把子树一颗颗地加进去,所以初始的dp[u][1] = 0,以前我也做过,不过是令dp[u][1] = 节点儿子数+1,根节点的话 = 儿子数,因为根节点不需要去父亲的边了,这应该是通常的做法吧。#include #inclu原创 2013-07-18 22:23:15 · 797 阅读 · 0 评论 -
Codeforces 161D 树形DP
题意:给你一颗数,边权值为1,问有多少对节点满足最小距离为k (n 由于k很小,所以我们可以直接对于每个节点保存该节点子树中到它距离为dis(0 #include #include struct EDGE { int to, next;}edge[100005];struct PP { int dis[505];};int E, head[50005],原创 2013-07-18 16:43:59 · 909 阅读 · 0 评论 -
Hdu 4661 Message Passing(树形DP,扩展欧几里得)
杭电多校集训4661 树形DP解题报告,比赛最后两分钟AC~原创 2013-08-09 00:18:55 · 2037 阅读 · 3 评论 -
HDU 4679 Terrorist’s destroy (树形DP)
杭电多校第八场 hdu 4679树形dp 简单明了的方法原创 2013-08-16 14:32:03 · 815 阅读 · 0 评论