求助 二维写法 本地样例没过但是90
查看原帖
求助 二维写法 本地样例没过但是90
324480
82Young_UwU楼主2023/4/19 18:55

本地样例跑出来 9 应该输出 10

#include <bits/stdc++.h>
using namespace std;

int n,ans,dp[1005][114514];
struct zhuan{
	int w,v;
}kuai[1005];

bool cmp(zhuan a,zhuan b)
{
	return a.w+a.v<b.w+b.v;
}

int main()
{
	
	cin >> n;
	for(int i=1;i<=n;i++) cin >> kuai[i].w >> kuai[i].v;
	
	sort(kuai+1,kuai+n+1,cmp);
	
	for(int i=1;i<=n;i++)
		for(int j=kuai[i].w+kuai[i].v;j>=kuai[i].w;j--)
			dp[i][j]=max(dp[i][j],dp[i-1][j-kuai[i].w]+kuai[i].v),ans=max(ans,dp[i][j]);
	
	cout << ans;
	
	
	return 0;
	
}
2023/4/19 18:55
加载中...