求助
查看原帖
求助
1428523
Tobyzeng1306楼主2024/11/1 17:33
#include <bits/stdc++.h>
using namespace std;
int dp[(int)(5e8+10)];
int main(){
	int n,l;
	cin>>n>>l;
	int w[n],v[n],W=0;
	for(int i=0;i<n;i++){
		cin>>w[i]>>v[i];
		W+=w[i];
	}
	for(int i=0;i<n;i++){
		for(int j=W;j;j--){
			if(j>=w[i]){
				dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
			}
			else{
				dp[j]=dp[j];
			}
		}
	}
	for(int i=0;i<W;i++){
		if(dp[i]>=l){
			cout<<i;
			return 0;
		}
	}
	cout<<"no solution";
	return 0;
}

为什么MLE??

2024/11/1 17:33
加载中...