当前位置: 首页 > news >正文

有专门下载地图做方案的网站吗做清洁找什么网站

有专门下载地图做方案的网站吗,做清洁找什么网站,wordpress游客购买,给公司做网站怎么弄注意事项: 本题是"动态规划—01背包"和"背包模型—二维费用的背包问题"的扩展题,优化思路不多赘述,dp思路会稍有不同,下面详细讲解。 题目: 潜水员为了潜水要使用特殊的装备。 他有一个带2种气体…

注意事项:
本题是"动态规划—01背包"和"背包模型—二维费用的背包问题"的扩展题,优化思路不多赘述,dp思路会稍有不同,下面详细讲解。

题目:
潜水员为了潜水要使用特殊的装备。

他有一个带2种气体的气缸:一个为氧气,一个为氮气。
让潜水员下潜的深度需要各种数量的氧和氮。
潜水员有一定数量的气缸。
每个气缸都有重量和气体容量。
潜水员为了完成他的工作需要特定数量的氧和氮。
他完成工作所需气缸的总重的最低限度的是多少?

例如:
潜水员有5个气缸。每行三个数字为:氧,氮的(升)量和气缸的重量:

3 36 12010 25 1295 50 2501 45 1304 20 119

如果潜水员需要5升的氧和60升的氮则总重最小为249(1,2或者4,5号气缸)。
你的任务就是计算潜水员为了完成他的工作需要的气缸的重量的最低值。

输入格式
第一行有2个整数 m,n。它们表示氧,氮各自需要的量。
第二行为整数 k表示气缸的个数。
此后的 k行,每行包括ai,bi,ci,3个整数。这些各自是:第 i个气缸里的氧和氮的容量及气缸重量。

输出格式
仅一行包含一个整数,为潜水员完成工作所需的气缸的重量总和的最低值。

数据范围
1≤m≤21,
1≤n≤79,
1≤k≤1000,
1≤ai≤21,
1≤bi≤79,
1≤ci≤800

输入:
输出:
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;const int N = 1010;
int n, m, c;                // 需要的氧气,需要的氮气,气缸的数量
int v1[N], v2[N], w[N];     // v1[i]物品i的氧气量,v2[i]物品i的氮气量,重量
int f[N][N];int main() {cin >> n >> m >> c;for (int i = 1; i<=c; i++) cin >> v1[i] >> v2[i] >> w[i]; // 输入每个气缸中包含的氧和氮的数量以及它们各自的重量memset(f, 0x3f3f, sizeof f); // 由于我们要求最小值,所以初始化数组f为无穷大f[0][0] = 0; // 当选取0个氧气和0个氮气的方案就是0//二维费用dp,优化参考01背包for (int i = 1; i<=c; i++) {for (int j = n; j>=0; j--) {for (int k = m; k>=0; k--) {//题目所说的是,当方案的v1不小于n,且v2不小于m时,w的最小值,也就是说可能用到超过n和m的物品,也就会出现负数的情况//这也就是为什么j>=0,k>=0,而不是j>=v1[i],k>=v2[i]//例如f[2][5],也就是需要v1不小于2,v2不小于5,那么如果有一个物品v1是3,v2是4,那么这个物品照样能用只是多出了一些体积但是仍然符合条件//就可以转移为f[0][1] + w, 此时就不需要v1了,因为v1满了,只需要看v2即可(也就是负数也能用,换为0即可)。f[j][k] = min(f[j][k], f[max(0, j - v1[i])][max(0, k - v2[i])] + w[i]);}}}cout << f[n][m];return 0;
}

思路:
经典的y式dp法

1.状态表示
f[i][j][k]:考虑前i个物品,体积不小于j,重量不小于k时的所有方案,属性为Min。

v1[i]第i个物品的氧气,v2[i]第i个物品的氮气,w[i]第i个物品的重量

2.状态计算
以 选择/不选择 第i个物品为划分,
1.当不选择第i个物品时:
f[i][j][k] = f[i-1][j][k]
2.当选择第二个物品时:
f[i][j][k] = min(f[i][j][k], f[i-1][j-v1[i]][k-v2[i]] + w[i])

同时由于我们无法开三维数组,那么就将第i维也就是物品维度优化即可,参考01背包的优化方式。

这里还有一点要提醒:
状态表示分析出的是:考虑前i个物品,体积不小于j,重量不小于k时的所有方案,找w的最小值,也就是说可能用到超过jk的物品,也就会出现 j-v1[i]或者k-v2[i]负数的情况。

这也就是为什么j>=0,k>=0而不是j>=v1[i],k>=v2[i]

例如f[2][5],也就是需要物品v1不小于2,v2不小于5,
那么如果有一个物品v1是3,v2是4,那么这个物品照样能用只是多出了一些体积但是仍然符合条件,
就可以转移为f[0][1] + w, 此时就不需要v1了,因为v1满了,只需要看v2即可(负数也能用,换为0即可)。

声明:
算法思路来源为y总,详细请见https://www.acwing.com/
本文仅用作学习记录和交流

http://www.yayakq.cn/news/871204/

相关文章:

  • 开源网站管理系统给帅哥做奴视频网站
  • 工业核信息化部网站备案系统wordpress创建滑块
  • 沈阳品牌网站建设php网站开发教程图片
  • dede网站运行天数短视频剪辑培训班多少钱
  • 华能集团网站建设方案项目分析什么叫平台公司
  • 一个专门做熊的网站饮品网页设计图片
  • 邯郸网站建设兼职淘宝不能发布网站源码做商品
  • 如何查公司网站谁家做的网站建设的重要性意义
  • 简洁的网站地图模板宁波优化网站厂家
  • 电子商务网站设计与管理宁波网站建设策划公司排名
  • c 做特产网站软件外包服务内容
  • 字体设计网站有哪些免费怎么让百度搜出自己
  • 怎样注册网站帐号申请wordpress 在线pdf
  • h5 服装网站模板网页设计毕业设计开题报告
  • php网站用到的知识购买域名和服务器
  • 做网站现在赚钱吗周口seo推广
  • 手机网站一键分享做网站的编程语言组合
  • 公司做网站需要准备什么材料jsp做网站
  • 制作营销网站模板wordpress0基础
  • 现在网站做多宽的网站建设预计资金投入
  • 网站如何做那种诱导广告域名购买需要多少钱
  • 竞价网站做推广方案网站开发哪种专业
  • 大连做公司网站哪家好网站怎么收录到百度
  • 建设一个商业网站费用哪些网站是营销型网站及原因
  • 门头沟青岛网站建设设计公司口号
  • 网站转跳怎么做电商网站上信息资源的特点包括
  • 最容易做的门户网站网站系统评测要怎么做呢
  • 专业的新乡网站建设wordpress 任务发布插件
  • 免费的静态网站托管怎么推广效果好呢网站怎么做推广
  • 基础的网站建设做最漂亮的网站