哪里有问题啊,急急急
查看原帖
哪里有问题啊,急急急
866969
telankesi楼主2022/11/21 20:29
#include <stdio.h>
int max(int a, int b);
int main() {
	int t;
	int m;
	scanf("%d%d", &t, &m);
	int w[200]={0};//耗时
	int v[200]={0};//价值
	int dp[200][200] = {0};//动态规划 前i个草药 在最大时间j下的最大价值
	for (int i = 1; i <= m; i++)
	{
		scanf("%d%d", &w[i], &v[i]);
	}
	for (int i = 1; i <= m; i++) {
		for (int j = 1; j <= t; j++) {
			if (w[i] > j) dp[i][j] = dp[i - 1][j];
			else dp[i][j] = max(dp[i - 1][j], dp[i-1][j - w[i]] + v[i]);
		}
	}
	printf("%d",dp[m][t]);
	return 0;
}
int max(int a, int b) {
	return  a > b ? a : b;
}
2022/11/21 20:29
加载中...