80pts求调,改数组大小分数也上不去了
查看原帖
80pts求调,改数组大小分数也上不去了
1300710
yuxusheng楼主2024/5/14 20:12
#include <bits/stdc++.h>
using namespace std;

int n, m, v[200005], w[200005], f[38005][38005];
int cnt = 0;

int main()
{
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
	{
		int x, y, k, jc = 1;
		cin >> y >> x >> k;
		while (k >= jc)
		{
			v[++cnt] = x * jc;
			w[cnt] = y * jc;
			k -= jc;
			jc *= 2;
			
		}
		if (k >= 1)
		{
			v[++cnt] = x * k;
			w[cnt] = y * k;
		}
	}	
	n = cnt;
	for (int i = 1; i <= n; i++)
	{
		for (int j = 0; j <= m; j++)
		{
			if (j >= v[i]) f[i][j] = max(f[i - 1][j], f[i - 1][j - v[i]] + w[i]);
			else f[i][j] = f[i - 1][j];
		}
	}
	cout << f[n][m];
	return 0;
}

上不去了,改大了变成MLE20分,改小了变成60MLE/60WA

2024/5/14 20:12
加载中...