标签:
5 5 8 13 27 14
3
include<stdio.h> #include<string.h> #define max(a,b)(a>b?a:b) int main() { int n,m,j,i,sum,s; int w[21]; int dp[100001]; while(scanf("%d",&n)!=EOF) { memset(dp,0,sizeof(dp)); sum=0; for(i=1;i<=n;i++) { scanf("%d",&w[i]); sum+=w[i]; } s=sum/2; for(i=1;i<=n;i++) { for(j=s;j>=w[i];j--) //j代表容量dp[j]代表当前容量下所能装入的最大价值 { dp[j]=max(dp[j],dp[j-w[i]]+w[i]); } } printf("%d\n",sum-2*dp[s]); } return 0; }
标签:
原文地址:http://www.cnblogs.com/tonghao/p/4558142.html