题目链接
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的子结点 }