摘要: 题意:从n个人中选出m个,每个人有固定的p值,d值,要求使m个人的p总和和d总和的差的绝对值最小,若有多解则取两者和最大的。分析:dp[i][j]表示在选m个人中的第i个人的时候使所有已选中的人的b,p差为j时,所能获得的b,p最大和。 dp[i + 1][j + b[k] - p[k]] = dp[i][j] + b[k] + p[k];(要求k之前没有选过,要查看[i][j]的完整路径,确保无k) 填写完成后,观察找到最小差值,最大和。知道和差自然可以求出总的p,d。View Code #include<stdio.h>#include<string.h>#incl 阅读全文
posted @ 2012-07-18 19:29 'wind 阅读(214) 评论(0) 推荐(0) 编辑