[JL]最后的晚餐

TimeLimit:1000MS  MemoryLimit:1000KB

64-bit integer IO format:%lld

Problem Description

【题库搜索“JL”查看更多建兰题库题目】

话说YZJ编的某程序超时了1000倍(- -!),所以他不得不在自己家门口亲眼见证这个电影般的场景。虽然他不想错过这个美妙的时刻,但是他的肚子一再抗议,要求先吃完这最后的晚餐。

现在YZJ准备依次吃n道菜。但是他只使用勺子和筷子吃,勺子和筷子可以交替使用,但是同一种菜只能用一种餐具,在开饭前他拿的是筷子。用勺子和筷子吃第i道菜的时间分别是a_i和b_i。吃第i道菜之前筷子和勺子交换的时间为c_i。

现在请你告诉ABC按他的计划依次吃完这n道菜,最小需要多少时间。

Input

第一行,一个正整数n(1<=n<=100)

以下n行,分别是三个正整数a_i,b_i,c_i(1<=a_i,b_i,c_i<=30000)

数据范围及提示:

所有其他输入<=30000 N<=20

Output

一个数,最短时间

SampleInput

3

20 40 20

10 4 25

90 100 5

SampleOutput

139

思路:看到这题我们会想到,这一道菜用筷子的的话,吃完这道菜要用的总的最小时间和这一道菜用勺子吃完要用的总的最小时间,那么我们就会想到要用一个状态来保存这个时间,但是我们会发现,一开始有两个状态,换勺子吃、用筷子吃,于是就要定义两个状态,一个是在第i道菜用勺子的总时间,另一个是第i道菜用筷子的总时间。那么我们就可以先将开头的状态初始化,dp[0][1]=第一道菜用筷子的时间,dp[0][0]=第一道菜换勺子的时间,然后之后的状态就是在之前是筷子还是汤匙之间转换;

这样就得到了状态转移方程;(dp[i][0]表示的是第i道菜用筷子吃的最小时间以及吃第i-1~0道菜用的最小时间,dp[i][1]同理)

#include<stdio.h>
const int N=110;
int Min(int a, int b){ return a<b?a:b; }
int dp[N][2];
int main( ){int n, a, b, c;scanf("%d", &n);for(int i=0; i^n; ++i){scanf("%d%d%d", &a, &b, &c);if(!i)dp[i][0]=a+c, dp[i][1]=b;else{dp[i][0]=Min(dp[i-1][0]+a, dp[i-1][1]+c+a);dp[i][1]=Min(dp[i-1][1]+b, dp[i-1][0]+b+c);}}printf("%d\n", Min(dp[n-1][0], dp[n-1][1]));return 0;
}

拙略的代码

转载于:https://www.cnblogs.com/DCD112358/p/8984812.html

[JL]最后的晚餐 动态规划(DP) codevs5318相关推荐

  1. 第4课 防卫导弹(第十章 动态规划--DP)

    //progream p10_04 /* 第4课 防卫导弹(第十章 动态规划--DP)  (<聪明人的游戏--信息学探秘 提高篇>) https://blog.csdn.net/weixi ...

  2. 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包

    动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...

  3. 【习题详解】动态规划DP:硬币游戏 蛋糕 游荡的奶牛 决斗

    动态规划DP 硬币 蛋糕塔 游荡的奶牛 格斗 硬币 题目描述 农夫约翰的奶牛喜欢玩硬币游戏,因此他发明了一种称为"Xoinc"的两人硬币游戏. 初始时,一个有N(5 <= N ...

  4. 动态规划: dp+递推——确定动态矩阵dp含义,确定每个状态下面临的选择和对结果值影响,选择符合题意的作为结果存储在dp中

    1.动态规划:每一个状态一定是由之前的状态推导出来的,通过总结归纳发现递推关系 2.解决动态规划问题的步骤: 确定dp数组(dp table)以及下标的含义: 每个单元内 题目所求的值,一维.二维 确 ...

  5. Datawhale编程——动态规划DP

    0-1背包问题 问题:有n个物品,第i个物品价值为vi,重量为wi,其中vi和wi均为非负数,背包的容量为W,W为非负数.现需要考虑如何选择装入背包的物品,使装入背包的物品总价值最大. 针对这个经典的 ...

  6. 《强化学习》中的 时序差分学习 Temporal-Difference Learning (基于与动态规划 DP 、蒙特卡洛方法 MC 的对比)

    前言: 学习了 Sutton 的<强化学习(第二版)>中时序差分学习的"预测"部分内容.前两章中,书介绍了 动态规划 与 蒙特卡洛方法 ,我们从二者与 时序差分学习 的 ...

  7. HDU2571 命运【动态规划DP】

    命运 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  8. 算法技能树2-蓝桥杯-python实现测试次数(摔手机)-动态规划(DP)

    文章目录 1.题目描述 2.python解题 1.知识点总结 1.题目描述 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规 ...

  9. 动态规划(dp)总结

    问题 T: [动态规划]质数和分解 题目描述 任何大于1的自然数n,都可以写成若干个大于等于2且小于等于n的质数之和的形式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式.例如9 ...

  10. 省选+NOI 第一部分 动态规划DP

    期望概率DP [整理]简单的数学期望和概率DP [整理]简单的数学期望和概率DP - nimphy - 博客园 期望&概率dp总结 期望&概率dp总结_十分残念的博客-CSDN博客 期 ...

最新文章

  1. 指尖下的js ——多触式web前端开发之二:处理简单手势
  2. When use jQuery databTables after add action reloa
  3. python【力扣LeetCode算法题库】面试题 10.01-合并排序的数组
  4. json loads No JSON object could be decoded 问题解决
  5. ios基础之归档和解档
  6. 云计算技术的跃进睿云智合专业先进水平
  7. 每天学点Linux命令:倒叙打印文件第二行的前100个大写字母
  8. Android之通过VideoView控件播放一个视频出现的问题以及我的解决办法
  9. 帅炸了!乌克兰国防军队的系统账号和密码分别是 admin 和 123456!
  10. 常用PAM模块--完全笔记
  11. python与数据思维基础_7个python案例中的数据思维
  12. Android Studio中的 Image Asset Studio(图标生成工具)
  13. swiper一行多图踩坑
  14. SDOI 2018二轮题解(除Day2T1)
  15. ExtJS 表格自定义列-动态widget
  16. 把项目从meeclipces转移到idead中遇见的问题
  17. thinkpad x1c 2015使用GPT分区方式安装原版win7系统
  18. JavaMeStudio工作室正式开张,专业开发手机软件!
  19. 五轮技术+两轮hr,历经7面通过阿里测试岗面试,27K*16薪,成功上岸...
  20. 一、八位行波进位加法器(含电路图)

热门文章

  1. 英语——句子结构和成分大全【学习笔记】
  2. x的x分之一次方极限x趋于0_x分之e的x次方减一的极限
  3. 数学建模:R语言的正态性检验
  4. PHP全部导出excel方法与批量导出超简单方法!
  5. 云真机兼容性测试方案
  6. 现场调试——win7 X64安装VS2017闪退之kb4474419 终极办法
  7. cron每小时执行一次_crontab每小时运行一次
  8. 山海经2服务器维护时间,山海经异兽录多久出一次新服 | 手游网游页游攻略大全...
  9. matplotlib绘图配色colormap问题
  10. bochs镜像java模拟器_bochs WIN7 IMG镜像文件