1 条题解

  • 1
    @ 2021-11-07 16:45:13

    #include<bits/stdc++.h>
    using namespace std;
    int b[101],n,m,num;
    bool c[101],flag;
    void print()
    {

    for(int z=1;z<=n;z++)
    {
    if(c[z])
    cout<<b[z]<<" ";
    }
    flag=1;
    exit(0);
    }
    void dfs(int v)
    {
    if(v==m) print();
    else
    {
    for(int i=1;i<=n;i++)
    {
    if(m-v>=b[i]&&!c[i])
    {
    v+=b[i];
    c[i]=1;
    dfs(v);
    c[i]=0;
    v-=b[i];
    }
    }
    }
    }
    int main()
    {
    cin>>n>>m;
    for(int p=1;p<=n;p++)
    {
    cin>>b[p];
    }
    dfs(0);
    if(flag==0)
    cout<<"No Answer!";
    }

  • 1

背包问题。(pack,1s,256MB)

信息

ID
1014
难度
7
分类
(无)
标签
递交数
19
已通过
8
通过率
42%
上传者