1 条题解

  • 0
    @ 2024-1-22 14:02:49
    #include<bits/stdc++.h>
    using namespace std;
    const int N=110;
    int ans[N];
    bool st[N];
    int n;
    int w[N];
    int T;
    int cnt=0;
    void dfs(int u,int sum,int c)
    {
        if(u==0)
        {
            if(sum==T&&c>1)
            {
                cnt++;
                for(int i=1;i<=n;i++)
                {
                    if(st[i]==1)
                    {
                        cout<<w[i]<<" ";
                    }
                }
                cout<<endl;
            }
            return ;
        }
        dfs(u-1,sum,c);
        st[u]=1;
        dfs(u-1,sum+w[u],c+1);
        st[u]=0;
    }
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>w[i];
        }
        cin>>T; 
        dfs(n,0,1);
        cout<<cnt<<endl;
        return 0;
    }
    
    • 1

    信息

    ID
    634
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    3
    已通过
    2
    上传者