乌丑 @ 2021-12-08 21:13:43
#include<bits/stdc++.h>
using namespace std;
int n,a,s,b,x[100],y[100],max=0;
void dfs(int rest,int num,int sum){
if(num==n-1){
if(sum>max)max=sum;
return;
}
else{
if(x[i]>a+b)dfs(rest,num+1,sum);
else if(y[i]>s)dfs(rest,num+1,sum);
else{
dfs(rest,num+1,sum);
dfs(rest-b[i],num+1,)
}
}
}
int main(){
cin>>n>>s>>a>>b;
for(int i=0;i<n;i++)
cin>>x[i]>>y[i];
int max;
dfs(s,1,0);
cout<<max;
return 0;
}
by Eason_AC @ 2021-12-08 21:15:05
@乌丑
max
改成 mx
。dfs(rest-b[i],num+1,)
这里是什么鬼by 昒昕 @ 2021-12-08 21:16:14
还有定义了两次 max
,一次全局,一次在 main
里边
by Eason_AC @ 2021-12-08 21:16:39
另外
int max;
之前已经定义过了,删掉这一行。mx
初始化需要赋值为一个很大的数,例如 0x3f3f3f3f
等