dfs做法不知道哪里放剪枝
#include<bits/stdc++.h>
using namespace std;
int t,m,ti[100005],value[100005],bestv=0;
void dfs(int step,int ctime,int cv)
{
if(ctime<0)
return;
if(step>m)
{
bestv=max(bestv,cv);
return;
}
dfs(step+1,ctime-ti[step],cv+value[step]);
dfs(step+1,ctime,cv);
}
int main()
{
cin>>t>>m;
for(int i=1;i<=m;i++)
cin>>ti[i]>>value[i];
dfs(1,t,0);
cout<<bestv;
return 0;
}