哪位大佬能教我一下如何剪枝?
查看原帖
哪位大佬能教我一下如何剪枝?
467328
BLePb楼主2021/7/21 15:51

代码如下

#include<bits/stdc++.h>
using namespace std;

#define re register
int ans=0,now,n,w;
int v[105],p[105];

inline void dfs(int price,int sum,int last)
{
	if(price>w) return;
	if(sum>ans) ans=sum;
	for(re int i=last+1;i<=n;i++)
		dfs(price+v[i],sum+p[i],i);
}

int main()
{
	ios::sync_with_stdio(0);
	cin>>n>>w;
	for(re int i=1;i<=n;i++)
		cin>>v[i]>>p[i];
	dfs(0,0,0,1);
	cout<<ans<<endl;
	return 0;
}
2021/7/21 15:51
加载中...