HDU.1008 Elevator
文章目录
- 一、题目解读
- 1、原题
- 2、分类
- 3、题意
- 4、输入输出格式
- 5、数据范围
- 二、题解参考
- 1、总体思路
- 2、思路①
- (1).分析
- (2).AC代码
- 三、评价与后话
- 1、评价
- 2、后话
一、题目解读
1、原题
HDU.1008 Elevator
2、分类
杂题、水题
3、题意
运粮的人开始在第0层,电梯上升一层需要6s、下降一层需要4s、停留运粮需要5s.
给定一个层数列表,需按照上面的顺序进行搬运,计算所需时间。
4、输入输出格式
输入/输出 | 要求与格式 |
---|---|
输入样例个数 | 通过输入N=0N=0N=0标识输入结束 |
输入格式(每个样例) | 每一行输入一个数NNN,后接NNN个层数aia_iai(空格隔开) |
输出格式(每个样例) | 每行输出一个结果 |
5、数据范围
数据 | 范围 |
---|---|
一切输入ttt | 0≤t<1000 \leq t < 1000≤t<100 |
二、题解参考
1、总体思路
思路 | 时间复杂度 | 具体解释 |
---|---|---|
穷举法 | O(n)O(n)O(n) | 直接模拟电梯按顺序升降,逐层计算 |
2、思路①
(1).分析
考虑到问题规模NNN很小,直接穷举就OK了。
用一个变量nownownow来存储当前所在层,将下一层和当前层的差d=ai−nowd = a_i - nowd=ai−now传入内联函数calc计算(或者直接用三目运算符),计算表达式如下:calc(d)={−4d+5d<06d+5d>0calc(d) = \begin{cases} -4 d+5 & d < 0 \\ 6d + 5 & d>0 \end{cases}calc(d)={−4d+56d+5d<0d>0
(2).AC代码
HDU(C++/G++)AC代码如下:
#include <iostream>
#include <algorithm>using namespace std;int a[105];
int now, res;inline int calc(int num)
{// 疑惑:是否需要考虑连续两层都是同一层?——从AC的结果来看不用考虑if (num < 0)return -4 * num + 5;return 6 * num + 5;
}int main()
{ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int n;while (cin >> n, n){for (int i = 0; i < n; ++i)cin >> a[i];now = res = 0;for (int i = 0; i < n; ++i){res += calc(a[i] - now);now = a[i];}cout << res << endl;}return 0;
}
三、评价与后话
1、评价
就是道水题,不烧脑。
2、后话
以后准备将大把精力花在ACM刷题上,fight!
HDU.1008 Elevator相关推荐
- HDU 1008 Elevator
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1008 纯水题,就是要注意即使下一站是同一楼层也要停5秒 贴上代码: 1 #include <io ...
- PAT甲级1008 Elevator:[C++题解]模拟
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:统计上升次数.下降次数:停留次数就是n.然后算数即可. ac代码 #include<bits/stdc++.h> usin ...
- 1008. Elevator (20)
1008. Elevator (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The highest ...
- 1008 Elevator (20 分)_13行代码AC
立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 The highest building in our city has only one elevator. A request ...
- 1008 Elevator
思路如下:用一个整型数组存楼层,0号元素为0(开始停在0层),每读入一个元素,和上一个比较,更大说明是上升,总时长加上楼层差*6,反之说明是下降,总时长加上楼层差*4.最后再管停留时间,也就是所有元素 ...
- 【PAT (Advanced Level) Practice】1008 Elevator (20 分)
#include<iostream> #include<cstdio> #include<cstdlib> #include<string> #incl ...
- 1008 Elevator (20 分)【难度: 简单 / 知识点: 模拟】
https://pintia.cn/problem-sets/994805342720868352/problems/994805511923286016 直接模拟即可. #include<bi ...
- 【PAT甲级 sc.nextInt()的使用】1008 Elevator (20 分) Java版 9/9通过
题目 这题已经给了电梯到达每一层的顺序,不需要自己调度电梯. 是个水题. 坑 & 心得 测试用例1 51 88 35 28 15 62 61 78 89 36 58 95 95 28 94 3 ...
- 杭电OJ分类题目(2)
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...
最新文章
- hive 表的常用操作
- 命令行参数 - 和 -- 的区别
- 链家秋招内推编程笔试题目
- mysql两者之间_sql between 语法与查询两者之间数据方法
- 科大星云诗社动态20210414
- Linux 下搭建Apache,Linux 下搭建Apache 服务器
- PAT (Basic Level) Practice (中文)1009 说反话 (20 分)
- VR创投寻鹰会,一场深圳VR行业人的大聚会
- FPGA学习之verilog语言入门指导
- 前端学习(2539):节点类型
- Cloud一分钟 |2018天猫双11结果出炉:2135亿;工信部透露:6G概念研究也在今年启动;英特尔39款至强新处理器曝光...
- truffle serve 发生异常解决办法
- NotificationManager滑动不退出_退出支付宝的相互宝大病互助计划居然需要8个步骤!...
- 工作记录 反射
- GD32F303 移植 FreeRTOS
- 【FastDFS-V5.11】Linux下FastDFS+Nginx实现分布式图片服务器搭建详细教程(单机模式)
- 微信公众号群发接口和原创校验
- 神经网络学习的几种方法
- 凯叔讲故事显示未能连接到服务器,凯叔讲故事(免费收听)
- (webapp)微信和safri 对于html5 部分功能不兼容,多选或单选下拉框去除边框无效果。...
热门文章
- 数据分析学习笔记—matplotlib折线图、条形图、直方图、饼状图基础绘制
- c语言220程序,电赛必备220个C语言实例源码分享
- oracle mysql安装图解 linux_Linux上Oracle 11g安装步骤图文详解
- cmd mysql出现乱码怎么解决方法_cmd如何解决mysql乱码
- sqlserver 分组合并列_【双11秒杀】帕克96分阿根廷一级名庄鼎尖单一园马尔贝克...
- hibernate 查询id为空懒加载_hibernate 查询时指定查询字段、级联表的一种方式
- android的多行文本框的值,Swift - 多行文本输入框(UITextView)
- Python装饰器几个有用又好玩的例子
- ThreadLocal类学习笔记
- 获取北京时间授时api stm32 esp8266获取北京时间、年月日、星期api GMT格林威时间转换北京时间