原題傳送門
水博客~~
若是系統中的某一個數可以被系統中的其他數表示,這個數就是無關緊要的
所有不能被其他數表示的數的個數就是答案
用解決即可
Code:
#include <bits/stdc++.h>
#define maxn 25010
using namespace std;
int dp[maxn], n, a[maxn];
inline int read(){
int s = 0, w = 1;
char c = getchar();
for (; !isdigit(c); c = getchar()) if (c == '-') w = -1;
for (; isdigit(c); c = getchar()) s = (s << 1) + (s << 3) + (c ^ 48);
return s * w;
}
int main(){
int T = read();
dp[0] = 1;
while (T--){
n = read();
int Max = 0, ans = 0;
for (int i = 1; i <= n; ++i) Max = max(Max, a[i] = read());
for (int i = 1; i <= Max; ++i) dp[i] = 0;
sort(a + 1, a + 1 + n);
for (int i = 1; i <= n; ++i){
if (!dp[a[i]]) ++ans;
for (int j = a[i]; j <= Max; ++j) dp[j] |= dp[j - a[i]];
}
printf("%d\n", ans);
}
return 0;
}