社区讨论

70分求助

P2370yyy2015c01 的 U 盘参与者 5已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lo82d2bb
此快照首次捕获于
2023/10/27 11:38
2 年前
此快照最后确认于
2023/10/27 11:38
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int cnt,x,y,n,p,s,flag,anss=1e9;
int w[1005],v[1005],ans[1000005],f[1000005];
int main(){
	freopen("P2370_5.in","r",stdin);
	cin>>n>>p>>s;
	for(int i=1;i<=n;i++){
		cin>>x>>y;
//		if(x>s){
//			continue;
//		} 
		w[++cnt]=x;
		v[++cnt]=y;
	}
	for(int i=1;i<=cnt;i++){
		for(int j=s;j>=w[i];j--){
			if(f[j-w[i]]+v[i]>f[j]){
				f[j]=f[j-w[i]]+v[i];
				ans[j]=max(ans[j-w[i]],w[i]);	
			}
			f[j]=max(f[j],f[j-w[i]]+v[i]);
		}
	}
	for(int i=s;i>=0;i--){
		if(f[i]<p){
			break;
			cout<<endl;
		}
		else{
			anss=min(anss,ans[i]);
			flag=1;
		}
	}
	if(flag){
		cout<<anss;
	}
	else{
		cout<<"No Solution!";
	}
//	cout<<f[505];
	return 0;
}

记录路径70分

回复

4 条回复,欢迎继续交流。

正在加载回复...