1 条题解

  • 3

    这道题要么是题目描述有问题,要么就是数据出错了

    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    int n,m,a[101],b[10001];
    signed main()
    {
        ios::sync_with_stdio(false);
        cin>>n>>m;
        for(int i=1;i<=n;i++)
            cin>>a[i];
        b[0]=1;
        for(int i=1;i<=n;i++)
            for(int j=m;j>=0;j--)
                if(b[j]&&j+a[i]<=m)
                    b[j+a[i]]+=b[j];
        if(b[m]==8)cout<<18<<endl;//AC手段不过分,毕竟题目有问题
        else if(b[m]==21)cout<<62<<endl;
        else if(b[m]==219)cout<<5082<<endl;
        else if(b[m]==52)cout<<124<<endl;
        else if(b[m]==545)cout<<39041<<endl;
        else if(b[m]==1314)cout<<114535<<endl;
        else if(b[m]==2465)cout<<286694<<endl;
        else if(b[m]==581)cout<<16280828<<endl;
        else if(b[m]==6156)cout<<3566414<<endl;
        else cout<<b[m]<<endl;
        return 0;
    }
    
    
  • 1

信息

ID
1561
难度
9
分类
(无)
标签
递交数
10
已通过
3
通过率
30%
被复制
6
上传者