0分,蒟蒻求助
查看原帖
0分,蒟蒻求助
310994
luox2019楼主2022/12/20 10:32

样例 和第一个 测试点(下载下来的) 本地都可以过,但是和还是WA

#include <iostream>
using namespace std;
const int N = 10005;
int read()
{
	int f = 1;
	int ans = 0;
	char c = getchar();
	if (c == '-')
	{
		f = -1;
		c = getchar();
	}
	while (c >= '0' && c <= '9')
	{
		ans = ans * 10 + c - '0';
		c = getchar();
	}
	return ans * f;
}

int n, m;
int w[N];
long long ans[N][N];
long long v[N];

int main()
{
	n = read();
	m = read();
	int k;
	for (int i = 1; i <= m; i++)
	{
		w[i] = read();
		k = read();
		v[i] = k * w[i];
	}

	for (int i = 1; i <= m; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			if (w[i] > j)
			{
				ans[i][j] = ans[i - 1][j];
			}
			else
			{
				ans[i][j] = max(ans[i - 1][j], ans[i - 1][j - w[i]] + v[i]);
			}
		}
	}
	cout << ans[m][n];
}
2022/12/20 10:32
加载中...