您的位置:首页 > 其它

动态规划训练(3)题解

2015-11-27 19:42 363 查看
题目链接

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=100641#overview

A 题意很恶心,好久没读那么长的英语了,其实方法很简单,将数从大到小排序,然后动态规划分组O(n^3)的算法复杂度

B n的范围很小,很明显是状态压缩DP,注意是要讲状态转移写对,还有由于是计数问题要开long long

C和训练(1)里面的约瑟夫问题相似,注意是输出的个数可能小于3

D读懂题意就行,

F(i,j) = max(F(i - 1, j) + w1, F(i, j - 1) + w2)

根据题意就能明白w1,w2代表着什么意思

E在前两次的训练中经常出现的问题,注意用string保存状态,状态转移的答案不再是一个数,而是一个结构体

F题不会做,不是动态规划

G二分图最大匹配做的,动态规划的思想我觉得有问题,但是好像也能过

f[u][0]: 表示不选i点,覆盖这个子树的最少点

f[u][1]:选i点,覆盖这个子树的最少点

所以可以得到状态转移方程:

f[u][1] = sum{ min{f[v][0], f[v][1]}, v是u的子结点 }

f[u][0] = sum{ f[v][1], v是u的子结点 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息