摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1712物品分多组,每组中的每件都是冲突的,那么,背包问题变成,在某组中取一个,使得价值达到最大,或者这组一个都不取能使价值达到最大,在01背包基础上加一个循环就可以,在减去体积的时候依次减去每组每一个的体积,这里的体积正好对应纵坐标,所以不必再抽象成c[i]了,价值w[i] 2 int max(int a,int b) 3 { 4 return a>b?a:b; 5 } 6 int main() 7 { 8 int i,k,j,n,m,dp[110],a[110][110]; 9 wh... 阅读全文