许诺 • 1个月前
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> V(n);
for (int i = 0; i < n; ++i) {
cin >> V[i];
}
int max_sum = 0;
for (int num : V) {
max_sum += num;
}
vector<bool> dp(max_sum + 1, false);
dp[0] = true;
for (int i = 0; i < n; ++i) {
for (int j = max_sum; j >= V[i]; --j) {
if (dp[j - V[i]]) {
dp[j] = true;
}
}
}
int count = 0;
for (int i = 1; i <= max_sum; ++i) {
if (dp[i]) {
count++;
}
}
cout << count << endl;
return 0;
}
评论:
请先登录,才能进行评论