rt。深搜是不是不行,得宽搜啊(不会)。
#include <bits/stdc++.h>
using namespace std;
int n,v,ans=INT_MIN,a[105],b[105];
void dr()
{
cin>>v>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i]>>b[i];
}
}
void dg(int dep,int sumt,int sumv)
{
if(n<dep)
{
if(sumv>ans)
{
ans=sumv;
}
}
else
{
dg(dep+1,sumt,sumv);
if(sumt+a[dep]<=v)
{
dg(dep+1,sumt+a[dep],sumv+b[dep]);
}
}
}
int main()
{
dr();
dg(1,0,0);
cout<<ans;
return 0;
}
By the way:壶关