社区讨论

求助,最后一个测试点是啥。过不了

P1616疯狂的采药参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@locj7e82
此快照首次捕获于
2023/10/30 14:41
2 年前
此快照最后确认于
2023/11/05 02:00
2 年前
查看原帖
CPP
#include<stdio.h>
#include<algorithm>
using namespace std;
#define SIZE 10000005
struct F
{
	long long kal;
	long long money;
};
int main() {

	struct F f[SIZE];
	long long dp[SIZE];
	int V,num;

	scanf("%d%d", &V, &num);
	getchar();

	for (long long i = 0; i < num; i++)
	{
		scanf("%d%d", &f[i].money, &f[i].kal);
	}
	for (long long v = 0;v <= V;v++) {
		dp[v] = 0;
	}
	for (long long  i = 0; i < num; i++)
		for (int v = f[i].money; v <= V; v++)
		{
			dp[v] = max(dp[v], dp[v - f[i].money] + f[i].kal);
		}

	int max = 0;
	for (long long  v = 0;v <= V;v++) {

		if (dp[v]>max)
		{
			max = dp[v];
		}
	}
	printf("%d", max);

	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...