讨论 / 90?什么鬼
BugenZhao 2016-01-01 01:01:18
点我顶贴 收藏 删除
#include <iostream>

#include <algorithm>

using namespace std;

int dp[200],w[200],n,sum,half;

int main()

{

cin>>n;

for(int i=1;i<=n;i++)

{cin>>w[i];sum+=w[i];}

half=(int)(((double)sum/2+0.5));

for(int i=1;i<=n;i++)

for(int j=half;j>=w[i];j--)

dp[j]=max(dp[j-w[i]]+w[i],dp[j]);

cout<<sum%2==0?(half-dp[half])*2:(half-dp[half])*2+1;

return 0;

}

查看更多回复
提交回复