其他分享
首页 > 其他分享> > AcWing 1020. 潜水员 二维费用的背包问题 求最小

AcWing 1020. 潜水员 二维费用的背包问题 求最小

作者:互联网

1020. 潜水员 - AcWing题库

分析

实现细节

Code

#include <bits/stdc++.h>

using namespace std;
const int maxn = 1500;

int m, n, K;
int f[maxn][maxn];
int main() {
	scanf("%d%d%d", &m, &n, &K);
	for(int i = 0; i <= 1300; i++)
		for(int j = 0; j <= 1300; j++)
			f[i][j] = inf;
	f[0][0]=0;
	for(int i = 0; i < K; i++) {
		int vol1, vol2, w;
		scanf("%d%d%d", &vol1, &vol2, &w);
		for(int j = m; j >= 0; j--) { //贡献最小可以为0
			for(int k = n; k >= 0; k--) {
				f[j][k] = min(f[j][k], f[max(0,j - vol1)][max(0,k - vol2)] + w);
			}
		}
	}
	
	printf("%d\n",f[m][n]); 

	return 0;
}

标签:1020,min,int,d%,vol2,物品,潜水员,氮气,AcWing
来源: https://blog.csdn.net/Muyunuu/article/details/118575277