题意:第一行输入n和c,表示有n层楼,电梯来到需要时间c

输入两行数,每行n-1个,表示从一楼到二楼,二楼到三楼.....n-1楼到n楼,a[ ] 走楼梯和 b[ ] 乘电梯花费的时间

思路:动态规划,考虑几种状态,假设当前在i-1层,想要去i层,有两种方法,乘电梯,走楼梯。

i-1层要考虑由什么状态到i-1层的,电梯和楼梯,如果是电梯,走楼梯或者乘电梯直接加上需要的时间即可,如果是楼梯状态,继续走楼梯加上a[ i ]即可,如果要坐电梯,加上电梯花费时间的同时也要加上等待电梯的时间;

此时列出动态转移方程,假设楼梯状态是0,电梯状态是 1

dp[ i ][ 0 ]=max{ dp[ i-1 ][ 0 ]+a[ i ] ,dp[ i-1 ][ 1 ]+ b[ i ] +c};

dp[ i ][ 1 ]=max{dp[ i-1 ][ 0 ] +a[ i ] ,dp[ i-1 ][ 1 ] +b[ i ]};

注意:当第一次坐电梯时,一定加上c

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
#define N 200005
int n,c,a[N],b[N],dp[N][2];
int main()
{
while(~scanf("%d%d",&n,&c))
{
for(int i=1;i<n;i++)
scanf("%d",&a[i]);//楼梯
for(int j=1;j<n;j++)
scanf("%d",&b[j]);//电梯
memset(dp,0,sizeof(dp));
/* 状态转移方程 [i]当前楼层 [j]怎么来的 [k]怎么走的 0 楼梯 1电梯*/
/*dp[i][0][0]=min(dp[i-1][0][0]+a[i],dp[i-1][1][0]+a[i]);
dp[i][0][1]=min(dp[i-1][0][0]+a[i],dp[i-1][1][0]+a[i]);
dp[i][1][0]=min(dp[i-1][0][1]+b[i]+c,dp[i-1][1][1]+b[i]);
dp[i][1][1]=min(dp[i-1][0][1]+b[i]+c,dp[i-1][1][1]+b[i]);*/
int w=0;
for(int i=1;i<n;i++)
{
dp[i][0]=min(dp[i-1][0]+a[i],dp[i-1][1]+a[i]);
if(i==1)
w=c;
else w=0;//第一次乘电梯必须加上c
dp[i][1]=min(dp[i-1][0]+b[i]+c,dp[i-1][1]+b[i]+w);
}
for(int i=0;i<n-1;i++)
printf("%d ",min(dp[i][0],dp[i][1]));
printf("%d\n",min(dp[n-1][0],dp[n-1][1]));
}
return 0;
}

CodeForces - 1249E 楼梯和电梯的更多相关文章

  1. Codeforces 1249E By Elevator or Stairs? 题解

    这题其实和 NIKKEI 2019-2-D Shortest Path on a Line 差不多的啦,都是一种最短路的变形,把多个点和边关联了起来. 题面 你要从一楼到 \(n\) 楼去,每层楼可以 ...

  2. dp(电梯与楼梯)

    http://codeforces.com/problemset/problem/1249/E E. By Elevator or Stairs? time limit per test 2 seco ...

  3. CF595 Div31249A,1249B1,1249B2,1249C1,1249C2,1249D1,1249D2,1249E,1249F)题解

    A:水题,先排序,有相连的输出2,否则输出1. #include<bits/stdc++.h> using namespace std; #define pii pair<int,i ...

  4. MySQL 第七天(核心优化一)

    一.Mysql核心优化 1. 优化的方面 ① 存储层:数据表"存储引擎"选取.字段选取.逆范式(3范式) ② 设计层:索引.分区/分表 ③ 架构层:分布式部署(主从模式/共享) ④ ...

  5. 我为什么要进国企----HP大中华区总裁孙振耀退休感言

    一.关于工作与生活 我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的.我见过的40岁附近的外企经理人大多 ...

  6. 转(HP大中华区总裁孙振耀退休感言)

    开篇转发一篇好文,苦闷,消沉,寂寞,堕落的时候看看. 发现这篇文章是09年之前就有人转发到自己博客了.放到自己的地盘,容易记起有这么个心灵鸡汤.   一.关于工作与生活 我有个有趣的观察,外企公司多的 ...

  7. 【转】HP(惠普)大中华区总裁孙振耀退休感言

    一.关于工作与生活我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的.我见过的40岁附近的外企经理人大多在 ...

  8. [Codeforces967C]Stairs and Elevators(二分查找)

    [不稳定的传送门] Sloution 每次试一下最近的2个楼梯或者电梯就行了 Code #include <cstdio> #include <algorithm> #incl ...

  9. 关于工作与生活——HP大中华区总裁孙振耀撰文谈退休并畅谈人生

    转自:http://blog.csdn.net/adaptiver/article/details/7494121 我有个有趣的观察,外企公司多的是25-35岁的白领, 40岁以上的员工很少,二三十岁 ...

随机推荐

  1. Flutter Widgets 之 RichText

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 基础用法 应用程序离不开文字的展示,因此文字的排版非常重要 ...

  2. 一文搞懂jvm内存结构

    一.jvm是干什么的? 大家都知道java是跨平台语言,一次编译可以在不同操作系统上运行,怎么做到的呢,看下图: javac把写的源代码(java文件),编译成字节码(class文件),字节码部署到l ...

  3. Swift--struct与class的区别(汇编角度底层分析)

    概述 相对Objective-C, Swift使用结构体Struct的比例大大增加了,其中Int, Bool,以及String,Array等底层全部使用Struct来定义!在Swift中结构体不仅可以 ...

  4. Java常见的类——Number和Math类

    但我们使用数据时,我们一般使用内置数据类型,列如:byte,int,long,double等,但是在实际开发过程中,我们一般遇到的是需要使用对象,这时,我们就可以使用 Java 专门为每一个数据类型提 ...

  5. 前端、HTML+CSS+JS编写规范(终极版)

    HTMLCSS文档规范 HTML和CSS文档必须采用UTF-8编码格式: HTML文档必须使用HTML5的标准文档格式: HTMLCSS编写规范 HTML和CSS的标签.属性.类名.ID都必须使用小写 ...

  6. 关于使用map存放数据乱序”问题“

    今天做项目中遇到了一个比较低级的错误,如果没注意将会变的更麻烦... 其实吧,也不难,要求就是将list中的值转为map后,再顺序输出map中的值,list的顺序怎样,加入到map的顺序也应怎样,不能 ...

  7. vue如何新建一个项目

    第一步:安装node 首先下载安装node 安装步骤参考:https://www.cnblogs.com/qdwz/p/10820554.html window+R打开控制命令行cmd node -v ...

  8. Chromium的无锁线程模型C++代码示例

    引言 作者:程序员bingo,主要关注客户端架构设计.性能优化.崩溃处理,有多年的Chromium浏览器开发经验. 多线程一直是软件开发中最容易出问题的环节,很多的崩溃.卡死问题都与多线程有关.在常用 ...

  9. 编译putty 源码去掉 Are you sure you want to close this session? 提示

    0, 为什么要编译 putty ?在关闭窗口的时候,会弹出一个 Are you sure you want to close this session?要把这个去掉.当然也可以用 OD 之类的来修改. ...

  10. 文本编辑器 - Sublime Text 3 换行无法自动缩进的解决方法

    一.换行无法自动缩进的问题,如图: 稍微查了一下网上的办法,是把汉化文件删除,但是会造成菜单栏混乱,简直无法忍受... 那么这里介绍的是另一种解决办法.在用户的热键配置文件(preferences-k ...