题目:https://codeforces.com/group/xrTA2IaQje/contest/254760/attachments/download/6528/20172018-acmicpc-east-central-north-america-regional-contest-ecna-2017-en.pdf

题意:背景吃饭,初始可以吃m,若之后连续吃每次是上一次的2/3(是可以吃的2/3,不是实际吃的2/3),若中间隔一次没吃,下一次可以和上一次吃的一样多,若连续两次不吃,下一次又可以吃m。每次有一个可以吃的上限。求最多可以吃多少。

思路:dp[i][j] 表示到第 i 次吃了 j 次能吃到的最大值。

//a[]是上限值,b[]是实际能吃值,注意各取值范围
dp[i][j] = max(dp[i][j], dp[i-1][j-1] + min(a[i], b[j]));
dp[i][j] = max(dp[i][j], dp[i-2][j] + min(a[i], b[j]));
dp[i][j] = max(dp[i][j], max(dp[i-3][k]) + min(a[i], m));

从前向后推也类似

代码:

#include <bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn = 105;int n, m, a[maxn], dp[maxn][maxn], b[maxn];
int main(){cin >> n >> m;b[0] = m;for(int i=1; i<=n; i++) {cin >> a[i];b[i] = b[i-1]*2/3;dp[i][0] = min(a[i], m);}for(int i=1; i<=n; i++){for(int j=0; j<=i; j++){if(i+1<=n)dp[i+1][j+1] = max(dp[i+1][j+1], dp[i][j] + min(a[i+1], b[j+1]));if(i+2<=n && n >= 2)dp[i+2][j] = max(dp[i+2][j], dp[i][j] + min(a[i+2], b[j]));dp[i+3][0] = max(dp[i+3][0], dp[i][j] + min(a[i+3], m));}}int ans = 0;for(int i=0; i<=n; i++) ans = max(ans, dp[n][i]);cout << ans << endl;
}

2017 ECNA Regional Contest-G:Question of Ingestion(dp)相关推荐

  1. 美团杯2020:查查查乐乐(dp)

    A. [美团杯2020]查查查乐乐 "查查查乐乐"是一段古老神秘的咒语,只有被选中的魔法师才有资格使用这一段咒语并享用它所带来的力量:而如果这段咒语出现在了不具资格的魔法师的口中, ...

  2. 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02) A Amusing Numbers (数学)

    其实挺简单的.先直接算出之前已经排在k这个数前面的数字.比如543是三位的,那么100~543都是可以的,两位的10~54. 如果还需要往前面补的话,那么依次考虑1000~5430,5430是上界不能 ...

  3. HPU第三次积分赛-D:Longest Increasing Subsequence(DP)

    Longest Increasing Subsequence 描述 给出一组长度为n的序列,a1​,a2​,a3​,a4​...an​, 求出这个序列长度为k的严格递增子序列的个数 输入 第一行输入T ...

  4. 九度OJ 1011:最大连续子序列 (DP)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5615 解决:2668 题目描述: 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ...

  5. 行为分析(十):姿态估计部分(六):人体关键点(keypoints)生成算法综述

    **写在前面的话通常很重要 对于行为分析任务,可以分为视频帧分类和依据人体关键点判定两个解决方向 而依据人体关键点判定又可以分为单人检测和多人检测 多人检测又可以分为top-down和bottom-u ...

  6. 信创环境下三个开源数据库:SQLite、MariaDB(MySQL)和postgreSQL(瀚高数据库免费版)基本操作

    在信创环境下,常用的免费数据库主要是:SQLite.MariaDB(MySQL)和postgreSQL(瀚高数据库免费版),可以在一些产品中内嵌使用. SQLite作为单文件数据库,不需要后台服务,预 ...

  7. 机器学习:新手入门概览(一)

    机器学习:新手入门概览(一) 定义 百度百科定义: 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算 ...

  8. JS编程建议——37:推荐使用replace(1)

    建议37:推荐使用replace(1) String对象的replace方法包含两个参数,第一个参数表示执行匹配的正则表达式,也可以传递字符串,第二个参数表示准备代替匹配的子字符串,例如,把字符串ht ...

  9. Rapid7警告声明:远程桌面协议(RDP)暴露数百万 Windows 终端

    本文讲的是Rapid7警告声明:远程桌面协议(RDP)暴露数百万 Windows 终端,去年6月,卡巴斯基实验室研究人员揭露,黑客利用远程桌面协议(RDP)窃取85,000台来自医院.学校.航空公司和 ...

  10. 科学计算:Python VS. MATLAB(4)----图形系统简介

    科学计算:Python VS. MATLAB(4)----图形系统简介 一.一般概念 图形系统就是用来实现所谓的可视化的.在学习具体的命令之前,先了解一个可视化的图形具有哪些特征,以及这些特征具有什么 ...

最新文章

  1. python画散点图类型-python学习之matplotlib绘制散点图实例
  2. SharePoint 2013 Workflow 状态栏失效
  3. 用Delphi开发OPC客户端工具的方法研究
  4. 启动oracle00119,oracle启动报ORA-00119错误
  5. boost::geometry::num_points用法的测试程序
  6. Fiddler 域名过滤
  7. 实现工具自由!开源的桌面工具箱
  8. 浅谈Time Elastic Band
  9. 从零开始学Pytorch(三)之多层感知机的实现
  10. sql union 和 union all
  11. 39.django的ORM模型
  12. 测试手机屏幕颜色软件,【AVW分享】一款你可以拥有的手机屏幕测试app
  13. 新浪微博开放平台PHP 类 WeiboClient 说明
  14. CentOS7安装Hadoop-3.3.0集群
  15. 如何通过图片定位位置
  16. 在Groovy中使用字符串
  17. App上线流程全攻略(史上最详细步骤)
  18. 海康工业摄像头调用(linux基于python和opencv)
  19. 吉林大学 软件学院 计算机网络题型总结
  20. 新松机器人产业小镇_总投资35亿元的新松机器人产业园项目落户永修

热门文章

  1. Pytorch:一、对图片数据进行标准化(猫狗)
  2. 005_Sketch 工具使用手册
  3. python爬虫12306查票
  4. matlab混频器的实现
  5. 创建github或者gitee(国内版github)账户
  6. 一个农村博士的独白:全家为什么只有我读到了博士?
  7. 一文快速入门三维人脸重建学习
  8. FireFox新标签页打开搜索和书签
  9. 河南第十届ACM省赛-E-八纵八横
  10. Barefoot如何应对Marvell可编程芯片的消亡