这个是01背包的dfs,求修改
#include<bits/stdc++.h>
using namespace std;
int ans,t,m;
int v[110],w[110];
void dfs(int x,int sum,int res)//x表示当前在考虑哪一个,sum表示时间,res表示价值
{
if(sum>t)//剪枝
return ;
if(x==m+1)//递归边界
{
if(sum<=t&&res>ans)
{
ans=res;
}
return ;
}
dfs(x+1,sum+v[x],res+w[x]);//选
dfs(x+1,sum,res);//不选
}
int main()
{
cin>>t>>m;
for(int i=1;i<=m;i++)
{
scanf("%d%d",&v[i],&w[i]);
}
dfs(1,0,0);
cout<<ans;
return 0;
}