社区讨论

60pts求调ac必回关(在我代码的基础上)

B3873[GESP202309 六级] 小杨买饮料参与者 2已保存回复 4

讨论操作

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

当前回复
4 条
当前快照
1 份
快照标识符
@mhjt60w2
此快照首次捕获于
2025/11/04 08:05
4 个月前
此快照最后确认于
2025/11/04 08:05
4 个月前
查看原帖
RE四个点 求dalao调
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
int sum=0;
int n,l; int r1[10000005],r2[100000005];
int dp[1000005];
int ans=0;
signed main()
{
	ios::sync_with_stdio(false);
	cin>>n>>l;
	int zj=0;
	for(int i=0;i<n;++i)
	{
		cin>>r1[i]>>r2[i];
		sum+=r2[i]; zj+=r1[i];
	}
	if(sum<l)
	{
		cout<<"no solution"<<endl;
		return 0;
	}
	else{
		for(int i=0;i<n;++i)
		{
			for(int j=zj;j>=r1[i];--j)
			{
				dp[j]=max(dp[j],dp[j-r1[i]]+r2[i]);
			}
		}
		for(int i=0;i<zj;++i)
		{
			if(dp[i]>=l)
			{
				cout<<i;
				return 0;
			}
		}
	}
	return 0;
}
谢谢!

回复

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

正在加载回复...