HUST Online Judge WebBoard
Problem 1362 >> dfs做法
20220440216 @ 2024-07-26 21:31:21
[ Quote ] [ Edit ] [ Delete ] 1#
#include <bits/stdc++.h>
using namespace std;
int n,V,v[25],w[25],ans=0;
void dfs(int num,int s1,int s2)
{
if(num==n+1)
{
if(s1<=V)ans=max(ans,s2);
return ;
}
dfs(num+1,s1,s2);
dfs(num+1,s1+v[num],s2+w[num]);
}
int main()
{
cin>>n>>V;
for(int i=1;i<=n;i++)
cin>>v[i]>>w[i];
dfs(1,0,0);
cout<<ans<<endl;
}