炸RE,求帮忙!
查看原帖
炸RE,求帮忙!
990027
Rain2012楼主2024/7/10 15:37
#include<bits/stdc++.h>
using namespace std;
int dp[10][1002005];
int main()
{
	int n,l,c[505],v[505],x = 0,ans = 0x3f3f3f;
	cin>>n>>l;
	for(int i = 1;i <= n;i++)
	{
		cin>>c[i]>>v[i];
		x = max(v[i],x);
	}
	dp[0][1] = 0;
	dp[0][0] = 0;
	for(int i = 1;i <= n;i++)
	{
		for(int j = 1;j <= l+x;j++)
		{
			if(j < c[i])
			{
				dp[i][j] = dp[i-1][j];
			}
			else
			{
				dp[i][j] = max(dp[i-1][j],dp[i-1][j-c[i]]+v[i]);
			}
			//cout<<i<<" "<<j<<":"<<dp[i][j]<<endl;
			if(dp[i][j] >= l)
			{
				ans = min(ans,j);
			}
		}
	}
	if(ans == 0x3f3f3f)
	{
		cout<<"no solution";
		return 0;
	}
	cout<<ans;
}
2024/7/10 15:37
加载中...