Forrest


私信TA

用户名:dotcpp0717441

访问量:1369

签 名:

等  级
排  名 163
经  验 6823
参赛次数 1
文章发表 75
年  龄 0
在职情况 教师
学  校 优学乐程
专  业

  自我简介:

解题思路: 01 背包,f[i][j] 表示i氧j氮气瓶所需要的最小重量,(W) 重量维度优化省略, 因此以倒序遍历i,j 

注意事项:当i - x 为负数时注意越界,因此取max(0,i-x)

参考代码:

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int f[31][89],m,n,k,x,y,z;
int main()
{
	cin >> m >> n >> k;
	memset(f,0x3f, sizeof f);
	f[0][0] = 0;
	for(; k; k--){
		cin >> x >> y >> z; 
		for(int i = m; i >= 0; i --)
			for(int j = n; j >= 0; j --){
				  if(f[i][j])
                    f[i][j]=min(f[i][j],f[max(0,i-x)][max(0,j-y)] + z);
		}
	}
	cout << f[m][n];
	return 0;
}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区