P5020 [NOIP2018 提高组] 货币系统
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int MAXAI=25005; const int MAXN=105; int f[MAXAI]; int a[MAXN]; int main() { int i,j,n,T,ans; scanf("%d",&T); while(T--) { memset(f,0,sizeof(f)); scanf("%d",&n);ans=n; for(i=0;i<n;i++) scanf("%d",&a[i]); //a[n-1]为背包重量 sort(a,a+n); f[0]=1; for(i=0;i<n;i++) { if(f[a[i]]) { ans--; continue; } for(j=a[i];j<=a[n-1];j++) { f[j]=f[j]|f[j-a[i]]; } } printf("%d\n",ans); } return 0; }