AcWing 2. 01背包 C 打表 注释
原题链接
简单
作者:
半自动WA机
,
2021-12-16 18:52:35
,
所有人可见
,
阅读 731
#include <stdio.h>
int max(int a, int b)
{
if (a >= b) return a;
return b;
}
int main()
{
int n, m;
int w[1010], v[1010];
int f[1010][1010] = {0};
scanf("%d %d", &n, &m); //物品数量 背包容积
for (int i = 1; i <= n; i++)
scanf("%d %d", &w[i], &v[i]);//weight体积(重量) value(价值)
for (int i = 1; i <= n; i++) //讨论第i个物品
{
for (int j = 0; j <= m; j++) //讨论在不同体积下是否取该物品的价值大小
{
if (j >= w[i])
f[i][j] = max(f[i-1][j], f[i - 1][j - w[i]] + v[i]);
else
f[i][j] = f[i-1][j];
}
}
/*for (int i = 0; i <= m; i++) //输出打的表
{
printf("i_%d ", i);
for (int j = 0; j <= n; j++)
{
printf("%d ", f[i][j]);
}
printf("\n");
}*/
printf("%d", f[n][m]);
return 0;
}
求解int max是干嘛的?
我学c++
tql,膜拜大佬
?