P5020 [NOIP2018 提高组] 货币系统

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;
}

  

posted @ 2022-03-24 09:27  心悟&&星际  阅读(24)  评论(0编辑  收藏  举报