求助七十分代码
查看原帖
求助七十分代码
400245
_Mikasa楼主2023/5/4 08:51

01背包WA 70分 不知道错在哪了

#include <bits/stdc++.h>
#define int long long
using namespace std;
int sum=-1;
int n,p,s,val[1000001],a[1000001],dp[1000001],ans=1e10+7,f[100000];
signed main(){
	cin>>n>>p>>s;
	for(int i=1;i<=n;i++){
		scanf("%lld %lld",&a[i],&val[i]);
	}
	dp[0]=0;
	for(int i=1;i<=n;i++){
		for(int j=s;j>=a[i];j--){
			if(dp[j-a[i]]+val[i]>=dp[j]){
				f[j]=max(a[i],f[j-a[i]]);	
			
			}
			dp[j]=max(dp[j],dp[j-a[i]]+val[i]);	
		}
	}
	for(int i=1;i<=s;i++){
		if(dp[i]>=p)
		ans=min(f[i],ans);
	}
	if(ans==1e10+7){
		cout<<"No Solution!";
	}else{
		cout<<ans;
	}
	return 0;
}
2023/5/4 08:51
加载中...