猎奇错误(玄关)
查看原帖
猎奇错误(玄关)
564282
zhangzhirui12345楼主2025/6/21 20:36
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,p,s,w[1010],v[1010],maxw;
ll dp[1010];
int main(){
	cin>>n>>p>>s;
	for(int i=1;i<=n;i++){
		cin>>w[i]>>v[i];
		maxw=max(maxw,w[i]);
	}
	for(int k=1;k<=maxw;k++){
		memset(dp,0,sizeof(dp));
		for(int i=1;i<=n;i++){
			for(int j=s;j>=0;j--){
				if(j>=w[i]&& k>=w[i]){
					dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
				}
			}
		}
		if(dp[s]>=p){
			cout<<k;
			return 0;
		}
	}
	cout<<"No Solution!";
	return 0;
}

我把所有样例全测了,卡在第四个点,下载数据完了之后还是对的

2025/6/21 20:36
加载中...