1 条题解

  • 0
    @ 2025-10-8 19:26:34

    很简单的子集枚举,用DFS。

    DFS代码

    void dfs(int x,int cnt,int sum){
        if(sum==t && cnt>=m) {
            cout << "Yes";
            exit(0);//在函数内部结束程序
        }
        if(x==n+1) return;//防止无限递归和越界
        dfs(x+1,cnt+1,sum+a[x]);
        dfs(x+1,cnt,sum);
        return;
    }
    

    主函数

    int main(){
        //输入自己写
        dfs(1,0,0);
        cout << "No";//DFS未找到满足条件的子集,输出"NO"
        return 0;
    }
    
    • 1

    信息

    ID
    3608
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    3
    已通过
    0
    上传者