提交时间:2024-05-18 14:24:34
运行 ID: 147282
#include<bits/stdc++.h> using namespace std; int T,a[105],b[105],n,m,f[25005]; int main(){ cin>>T; for(int q=0;q<T;q++){ memset(f,0,sizeof(f)); cin>>n; m=n; for(int i=1;i<=n;i++)cin>>a[i]; sort(a+1,a+n+1,less<int>()); for(int i=1;i<=n;i++){ memset(f,0,sizeof(f)); memset(b,0,sizeof(b)); for(int j=1;j<=n-1;j++){ if(j==i)b[j]=a[i+1]; else b[j]=a[j]; } for(int j=1;j<=n-1;j++){ for(int k=b[j];k<=a[i];k++){ f[k]=max(f[k],f[k-b[j]]+b[j]); } } if(f[a[i]]==a[i])m--; } cout<<m<<endl; } }