2013年11月17日

POJ1947 - Rebuilding Roads(树形DP)

摘要: 题目大意 给定一棵n个结点的树,问最少需要删除多少条边使得某棵子树的结点个数为p 题解 很经典的树形DP~~~直接上方程吧 dp[u][j]=min(dp[u][j],dp[u][j-k]+dp[v][k]-1) 方程的意思是 以u结点为根保留j个结点需要删除的最少的边的条数,那么可以选择在某个子结点v中选择k个保留,其他结点保留j-k个,为什么需要-1呢,因为相当于把子树v衔接到结点u上,因此边... 阅读全文

posted @ 2013-11-17 22:37 仗剑奔走天涯 阅读(207) 评论(0) 推荐(0) 编辑

POJ1155 - TELE(树形DP)

摘要: 题目大意 电视台要直播一场比赛,电视网络刚好形成了一棵树,其中有M个为客户端,其他的为中转站,其中中转站与中转站以及中转站与客户端之间连接都需要一定费用,每个客户i愿意支付pay[i]元钱,问电视台在不亏损的情况下,最多可以让多少个客户观看比赛 题解 每个客户要么选要么不选,和01背包差不多,只不过这是在树上进行,我们用dp[u][j]表示以u为根节点选择j个客户的能够获得的最大盈利,dp[u][... 阅读全文

posted @ 2013-11-17 18:22 仗剑奔走天涯 阅读(192) 评论(0) 推荐(0) 编辑

HDU4003 - Find Metal Mineral(树形DP)

摘要: 题目大意 给定一棵n个结点的树,每条边有一个花费,有k个机器人从点s出发,让它们遍历所有的边,最小花费是多少? 题解 完全没思路。。。。看了他的题解再写的~~ 代码: #include #include #include #include using namespace std;#define MAXN 10005struct node{ int v,next,w;};node edge[2... 阅读全文

posted @ 2013-11-17 15:58 仗剑奔走天涯 阅读(141) 评论(0) 推荐(0) 编辑

CF29D - Ant on the Tree(DFS)

摘要: 题目大意 给定一棵树,要求你按给定的叶子节点顺序对整棵树进行遍历,并且恰好经过2*n-1个点,输出任意一条符合要求的路径 题解 每次从叶子节点开始遍历到上一个叶子节点就OK了, 这个就是符合要求的路径 代码: #include #include #include #include #include using namespace std;#define MAXN 305vectorG[MAXN],... 阅读全文

posted @ 2013-11-17 14:27 仗剑奔走天涯 阅读(291) 评论(0) 推荐(0) 编辑

导航