1 条题解

  • 0
    @ 2025-4-14 18:41:37

    C++ :

    #include<iostream>
    #include<string>
    #include<algorithm>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<cstdlib>
    using namespace std;
    bool vis[25];
    int ans,n,a[25];
    void dfs(int l,int sum)
    {
        if(sum==40) {ans++;return ;}
        if(l>=n || sum>40) return ;
        if(!vis[l])
        {
            vis[l]=true;
            dfs(l+1,sum+a[l]);
            vis[l]=false;
            dfs(l+1,sum);
        }
    }
    int main()
    {
        while(cin>>n)
        {
              //FILE *f=fopen("输出.txt","a+");
            //cout<<n<<endl;
            for(int i=0;i<n;i++) cin>>a[i];
            ans=0;
            fill(vis,vis+25,false);
            dfs(0,0);
            //fprintf(f,"%d\n",ans);
            cout<<ans<<endl;
            //fclose(f);
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    3082
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者