每日一题 5月28日货币系统 完全背包
题目链接:
#include <bits/stdc++.h> #define LL long long using namespace std; int a[105]; bitset<25005> f; int main(){ int T; scanf("%d", &T); while(T--){ f.reset(); int n; scanf("%d", &n); for(int i=1; i<=n; i++){ scanf("%d", &a[i]); } sort(a+1, a+1+n); f[0]=1; int ans=0; for(int i=1; i<=n; i++){ if(f[a[i]]==0) ans++; for(int j=a[i]; j<=25005; j++){ f[j]=f[j]|f[j-a[i]]; } } cout<<ans<<endl; } return 0; }