题解
2025-10-03 10:19:45
发布于:广东
4阅读
0回复
0点赞
可以转换成背包问题解,先求和,由于要求最接近,所以背包容量尽量为
#include<bits/stdc++.h>
using namespace std;
int n,w[25],dp[2000005],sum;
int main()
{
cin >> n;
for (int i=1;i<=n;i++)
{
cin >> w[i];
sum+=w[i];
}
for (int i=1;i<=n;i++)
{
for (int j=(sum>>1);j>=w[i];j--)
dp[j]=max(dp[j],dp[j-w[i]]+w[i]);
}
cout << abs(sum-dp[sum>>1]-dp[sum>>1]);
return 0;
}
这里空空如也





有帮助,赞一个