CodeForces - 1249E 楼梯和电梯
题意:第一行输入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 楼梯和电梯的更多相关文章
- Codeforces 1249E By Elevator or Stairs? 题解
这题其实和 NIKKEI 2019-2-D Shortest Path on a Line 差不多的啦,都是一种最短路的变形,把多个点和边关联了起来. 题面 你要从一楼到 \(n\) 楼去,每层楼可以 ...
- dp(电梯与楼梯)
http://codeforces.com/problemset/problem/1249/E E. By Elevator or Stairs? time limit per test 2 seco ...
- 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 ...
- MySQL 第七天(核心优化一)
一.Mysql核心优化 1. 优化的方面 ① 存储层:数据表"存储引擎"选取.字段选取.逆范式(3范式) ② 设计层:索引.分区/分表 ③ 架构层:分布式部署(主从模式/共享) ④ ...
- 我为什么要进国企----HP大中华区总裁孙振耀退休感言
一.关于工作与生活 我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的.我见过的40岁附近的外企经理人大多 ...
- 转(HP大中华区总裁孙振耀退休感言)
开篇转发一篇好文,苦闷,消沉,寂寞,堕落的时候看看. 发现这篇文章是09年之前就有人转发到自己博客了.放到自己的地盘,容易记起有这么个心灵鸡汤. 一.关于工作与生活 我有个有趣的观察,外企公司多的 ...
- 【转】HP(惠普)大中华区总裁孙振耀退休感言
一.关于工作与生活我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的.我见过的40岁附近的外企经理人大多在 ...
- [Codeforces967C]Stairs and Elevators(二分查找)
[不稳定的传送门] Sloution 每次试一下最近的2个楼梯或者电梯就行了 Code #include <cstdio> #include <algorithm> #incl ...
- 关于工作与生活——HP大中华区总裁孙振耀撰文谈退休并畅谈人生
转自:http://blog.csdn.net/adaptiver/article/details/7494121 我有个有趣的观察,外企公司多的是25-35岁的白领, 40岁以上的员工很少,二三十岁 ...
随机推荐
- 目标用户偏好指数Target Group Index分析
目标用户偏好指数Target Group Index分析 TGI指数,全称Target Group Index,可以反映目标群体在特定研究范围内强势或者弱势. TGI指数计算公式 = 目标群体中具有某 ...
- 利用动态资源分配优化Spark应用资源利用率
背景 在某地市开展项目的时候,发现数据采集,数据探索,预处理,数据统计,训练预测都需要很多资源,现场资源不够用. 目前该项目的资源3台旧的服务器,每台的资源 内存为128G,cores 为24 (co ...
- zookeeper伪集群搭建
zookeeper伪集群搭建 1. 下载zookeeper: https://zookeeper.apache.org/ 2. 解压: tar -zxvf zookeeper-3.4.14.tar.g ...
- Dubbo 入门-细说分布式与集群
什么是Dubbo Dubbo是一款高性能.轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现. 什么是RPC RPC全称(Rem ...
- JZOJ 1736. 扑克游戏 (Standard IO)
1736. 扑克游戏 (Standard IO) Time Limits: 1000 ms Memory Limits: 128000 KB Description 有一棵无穷大的满二叉树,根为sta ...
- TP5使用Redis处理电商秒杀
本篇文章介绍了ThinkPHP使用Redis实现电商秒杀的处理方法,具有一定的参考价值,希望对学习ThinkPHP的朋友有帮助! TP5使用Redis处理电商秒杀 1.首先在TP5中创建抢购活动所需要 ...
- django models中的class meta
Django models中的meta选项 通过一个内嵌类 "class Meta" 给你的 model 定义元数据, 类似下面这样: class Foo(models.Model ...
- C++ 判断两个圆是否有交集
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include <math.h> #include <easyx.h ...
- 常用计算机CMD 命令
cd\ '返回到根目录 cd.. '返回到上一级目录 1 cd 显示当前目录名或改变当前目录. 2 dir 显示目录中的文件和子目录列表. 3 md 创建一个目录. 4 mkdir 创 ...
- 0318 guava并发工具
并发是一个难题,但是可以通过使用强力简单的抽象来显著的简化,为了简化问题,guava扩展了Future接口,即 ListenableFuture (可以监听的Future).我强烈建议你在你的所有代码 ...