除了#6外全蛙求调,答复者关注,没问题后删帖
查看原帖
除了#6外全蛙求调,答复者关注,没问题后删帖
1384733
slch楼主2024/12/8 19:39

我的代码如下

#include <bits/stdc++.h>
using namespace std;

int dp[105][100000], w[105], n, m;

int main()
{
	cin>>n;
	for(int i = 1;i <= n;i++)
	{
		cin>>w[i];
		m += w[i];
	}
	dp[0][0] = 1;
	sort(w + 1, w + n + 1);
	reverse(w + 1, w + n + 1);
	for(int i = 1;i <= n;i++)
	{
		for(int j = 0;j <= m;j++)
		{
			dp[i][j] = (j - w[i] >= 0 && dp[i - 1][j - w[i]] || dp[i - 1][j + w[i]] || dp[i - 1][j]);
//			cout<<dp[i][j]<<" ";
		}
//		cout<<"\n";
	}
	int cnt = 0;
	for(int i = 1;i <= m;i++)
	{
		cnt += dp[n][i];
//		cout<<(bool(dp[n][i]) ? to_string(i) : " ")<<" ";
	}
	cout<<cnt;
}
2024/12/8 19:39
加载中...