#include<bits/stdc++.h>
using namespace std;
int n,s,w[110];
int a[110];
void dfs(int dep,int wt)
{
if(dep>n){
if(wt==s){
for(int i=1;i<=n;i++){
if(a[i]>0){
cout<<a[i]<<" ";
}
}
cout<<endl;
exit(0);
}
}
else{
dfs(dep+1, wt);
a[dep]=w[dep];
dfs(dep+1, wt+w[dep]);
a[dep]=0;
}
}
int main()
{
cin>>n>>s;
for(int i=1;i<=n;i++){
cin>>w[i];
}
dfs(1,0);
cout<<"No Answer!";
return 0;
}
背包问题-DFS C++代码
最新推荐文章于 2024-08-02 16:14:00 发布