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

冀州网站优化重庆市价格信息网官网

冀州网站优化,重庆市价格信息网官网,加工厂怎么接外贸订单,网站备案的幕布尺寸题目大意 高桥有两种属性:体力(共 H H H 点)和魔力(共 M M M 点)。现在要按顺序处理 N N N 个怪兽,可以使用 a i a_i ai​ 点体力或者 b i b_i bi​ 点魔力,处理到体力魔力不足或全部完成…

题目大意

高桥有两种属性:体力(共 H H H 点)和魔力(共 M M M 点)。现在要按顺序处理 N N N 个怪兽,可以使用 a i a_i ai 点体力或者 b i b_i bi 点魔力,处理到体力魔力不足或全部完成为止。问最多处理几个怪兽。

思路

题目明确了我们要按顺序处理,这也大大节省了时间复杂度(无需枚举上一步所在位置)。我们令 f i , j , 0 / 1 f_{i,j,0/1} fi,j,0/1 表示处理第 i i i 个怪兽,还剩 j j j 点体力,是否( 0 0 0 代表否, 1 1 1 代表是)在这次使用魔力的情况下,最少需要消耗多少魔力。

我个人认为最好不要把第一位压掉,不然很有可能会造成第 i i i 步未由第 i − 1 i-1 i1 步转移而来的情况。在这种情况下,空间只能开一个 O ( N H ) O(NH) O(NH) 或者 O ( N M ) O(NM) O(NM) 的了(常数忽略不计)。所以,我们不能按照正常的思路去开三维数组直接计算答案,而是要这样间接地完成。如果你之前没有接触过这样的动态规划方式,建议完成 洛谷 P1510 精卫填海 之后再来阅读本文。

我们考虑如何转移:

  • 不使用魔力(即这一维的值为 0 0 0): min ⁡ { f i − 1 , j + a i , 0 , f i − 1 , j + a i , 1 } \min\lbrace f_{i-1,j+a_i,0},f_{i-1,j+a_i,1}\rbrace min{fi1,j+ai,0,fi1,j+ai,1},因为上一步体力至少剩余 j + a i j+a_i j+ai
  • 使用魔力(即这一维的值为 1 1 1): min ⁡ { f i − 1 , j , 0 , f i − 1 , j , 1 } + b i \min\lbrace f_{i-1,j,0},f_{i-1,j,1}\rbrace+b_i min{fi1,j,0,fi1,j,1}+bi,因为上一步体力剩余 j j j 即可,需要额外消耗 b i b_i bi 魔力。

那么如何求答案呢?显然,我们是要寻找满足最小魔力值不超过魔力上限的最大的 i i i,即满足 min ⁡ j = 0 H { f i , j , 0 , f i , j , 1 } ≤ M \min_{j=0}^H\lbrace f_{i,j,0},f_{i,j,1}\rbrace\le M minj=0H{fi,j,0,fi,j,1}M 的最大的 i i i

代码

// https://atcoder.jp/contests/abc410/submissions/66760787
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;int n, h, m;
int a[3010];
int b[3010];
int f[3010][3010][2];int main()
{cin >> n >> h >> m;for (int i = 1; i <= n; i++)cin >> a[i] >> b[i];memset(f, 0x3f, sizeof(f));for (int i = 0; i <= h; i++)f[0][i][0] = f[0][i][1] = 0;for (int i = 1; i <= n; i++){for (int j = 0; j + a[i] <= h; j++){f[i][j][0] = f[i - 1][j + a[i]][0];f[i][j][0] = min(f[i][j][0], f[i - 1][j + a[i]][1]);}for (int j = 0; j <= h; j++){f[i][j][1] = f[i - 1][j][0];f[i][j][1] = min(f[i][j][1], f[i - 1][j][1]);f[i][j][1] += b[i];}}for (int i = n; i >= 0; i--){int v = 1e9;for (int j = 0; j <= h; j++)v = min(v, min(f[i][j][0], f[i][j][1]));if (v <= m){cout << i << endl;return 0;}}return 0;
}

文章转载自:

http://yHmrACpO.cyhLq.cn
http://Cet9ICSP.cyhLq.cn
http://43ypIwG2.cyhLq.cn
http://gJWMxvIw.cyhLq.cn
http://9oFwl5wP.cyhLq.cn
http://TuJpJeZI.cyhLq.cn
http://qvroegyl.cyhLq.cn
http://cPDHysPe.cyhLq.cn
http://zDWH4Qax.cyhLq.cn
http://JnSWp2K7.cyhLq.cn
http://cKGpswTL.cyhLq.cn
http://hWZZsS87.cyhLq.cn
http://A8kfVu6W.cyhLq.cn
http://Ym9HzHlJ.cyhLq.cn
http://7dQbmTbx.cyhLq.cn
http://2TRO3L12.cyhLq.cn
http://ymcNnFpF.cyhLq.cn
http://4va1UEBv.cyhLq.cn
http://1WwIFBWw.cyhLq.cn
http://CoRNNUXt.cyhLq.cn
http://Y55qNQi2.cyhLq.cn
http://jtIV7kih.cyhLq.cn
http://HGSiIJHw.cyhLq.cn
http://YCpQVt8x.cyhLq.cn
http://1DA4BuZZ.cyhLq.cn
http://VOAXcfzY.cyhLq.cn
http://6isDPwQo.cyhLq.cn
http://77zeIEyV.cyhLq.cn
http://TRlNQXei.cyhLq.cn
http://dyxeIhy2.cyhLq.cn
http://www.dtcms.com/wzjs/664859.html

相关文章:

  • 外贸行业网站建设国内十大咨询公司排名
  • 建设银行网网站一级建造师求职网
  • 青岛市两个体系建设网站组织架构及营销网络怎么填写
  • 怎样做网站表白墙仿站网站开发
  • 山东建设执业师官方网站做色网站
  • 小说章节收费网站建设济南公司做网站的价格
  • 给网站做数据分析wordpress修改编辑器
  • 广东建设网站北京大兴做环保备案网站
  • 电子商务网站建设模板下载吉利汽车网站开发环境分析
  • 网站建设 平易乐清建站公司
  • 免费推广网站入口2022wordpress填表插件
  • 网站开发的语言有什么软件网站建设公司兴田德润电话
  • 学校网站建设对教学的意义说说网站是怎样建设和推广的
  • 网站静态和动态区别是什么意思设计之家海报
  • 手机网站怎么优化关键词外贸营销员国家职业技能标准
  • 网站推广的含义wordpress搭建网站
  • 服装建设网站的原因泰安网站建设流程
  • 那些网站可以做文案兼职杭州网站设计费用
  • 比较好的网站建设企业网站开发常用png
  • 网站建设版面分几页合适网站建设任职
  • 南京站建设网站竞价怎么做
  • 小学最好的网站建设阳江网站推广优化
  • 旅游网站的市场需求怎么做介绍网站开发预算
  • 湖南高端网站制作公司网络营销的优势与不足
  • 网络工程公司属于什么行业镇江网站建设和优化推广多少钱
  • 杭州做网站费用企业做网站的意义
  • 重庆企业网站建设wordpress列表页模板
  • 一键免费建立网站全国最新实时大数据
  • 云南文投建设投资有限公司网站网站备案密码怎么找回
  • 网站怎样设计网址大全自己做网站怎么样