您的位置:首页 > 其它

树形dp - Codeforces Round #322 (Div. 2) F Zublicanes and Mumocrates

2015-10-03 22:25 330 查看

Zublicanes and Mumocrates


Problem's Link

[b]Mean:[/b]

给定一个无向图,需要把这个图分成两部分,使得两部分中边数为1的结点数量相等,最少需要去掉多少条边.

[b]analyse:[/b]

树形dp.

dp[cur][i][j]:当cur为i集合的时候 有j个和i同集合的方案

状态转移方程为:

   dp[cur][i][j+k] = min{dp[to][i^1][j=(叶子个数-d)]+dp[cur][i][k]+1,dp[to][i][j]+dp[cur][i][k]}

cnt为叶子节点的个数.

最后答案是:min{ dp[root][0][cnt/2] ,dp[root][1][cnt/2]}

[b]Time complexity: O(N)[/b]

[b]view code[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: