摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1054题意:给你一棵树,n顶点,n-1条边,让你找到最少的顶点覆盖树上的所有边,即最小顶点覆盖可以用匹配做(二分匹配的版题),也可以用树形DPdp[s][0]表示以s为根的子树在s点不放的情况下的最小顶点数dp[s][1]表示以s为根的子树在s点放的情况下的最小顶点数则:dp[s][0]=sigma(dp[ss][1])(ss表示s的子节点)(子节点必须放)dp[s][1]=sigma(min(dp[ss][0],dp[ss][1]))(ss表示s的子节点)(子节点可放可不放)则min(dp[0][0],dp 阅读全文
posted @ 2014-01-28 23:41 xysmlx 阅读(223) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1011&PHPSESSID=nrt5ggjfqbhpk9au99mgcvm226树形DP题意:给你一颗树,n个顶点,n-1条边,m个花费,从根(编号1)出发,每个顶点有一定花费也有一定收获,并且经过的边不能再次经过,求最大收获是多少?典型的树形DP,dp[root][k]表示以root为根的子树花费k得到的最大收获,则转移方程为:dp[root][k]=max(dp[root][k],dp[root][k-i]+dp[t][i])(t为以root的子节点)注意特判m=0的情况(直接输出0) 1 // 阅读全文
posted @ 2014-01-28 21:13 xysmlx 阅读(197) 评论(0) 推荐(0) 编辑