30分求调
查看原帖
30分求调
1047344
ababababababababa楼主2024/9/3 21:48

玄关,WA,样例都过了

#include<iostream>
using namespace std;
int n,l,w[510],v[510],dp[510][510];
int main()
{
	cin>>n>>l;
	for(int i=1;i<=n;i++)
	    cin>>w[i]>>v[i];
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=l;j++)
		{
			if(j>=w[i])
			    dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
			else
			    dp[i][j]=dp[i-1][j];
		}
	}
	bool t=false;
	for(int i=1;i<=l;i++)
	{
		if(dp[n][i]>l)
		{
			printf("%d",i);
			t=true;
			break;
		}
	}
	if(!t) printf("no solution");
	return 0;
}
2024/9/3 21:48
加载中...