蓝桥杯备赛--AcWing 668. 游戏时间2
文章目录
- 蓝桥杯备赛--AcWing 668. 游戏时间2
- lanqiao备赛系列说明
- 题目
- 题目描述
- 输入格式
- 输出格式
- 数据范围
- 下面进行解法思路的详解(这里提供三种思路及解决方案)
- 一、直接按照时间属性进行讨论(最复杂考虑的情况最多)
- 1. 思路
- 2. 图示分析
- 3. 实现代码(C++)
- 二、直接把时间问题间接转化为数量问题
- 1. 思路
- 2. 具体解决
- 3. 实现代码(C++)
- over
蓝桥杯备赛–AcWing 668. 游戏时间2
lanqiao备赛系列说明
- 这是第一篇备赛blog 本次备赛我使用的是y总的ACwing刷题网站进行学习备赛(也算是给y总打广告了hhh)
- 本系列的刷题还是希望以赛促学 在备赛的基础上激励自己学习更多的知识。
- 其他不多赘述了 希望可以获奖
原题链接
题目
题目描述
读取四个整数 A,B,C,D,用来表示游戏的开始时间和结束时间。
其中 A 和 B 为开始时刻的小时和分钟数,C 和 D 为结束时刻的小时和分钟数。
请你计算游戏的持续时间。
比赛最短持续 1 分钟,最长持续 24 小时。
输入格式
共一行,包含四个整数 A,B,C,D。
输出格式
输出格式为 O JOGO DUROU X HORA(S) E Y MINUTO(S),表示游戏共持续了 X 小时 Y 分钟。
数据范围
0≤A,C≤23,
0≤B,D≤59
输入样例1:
7 8 9 10
输出样例1:
O JOGO DUROU 2 HORA(S) E 2 MINUTO(S)
输入样例2:
7 7 7 7
输出样例2:
O JOGO DUROU 24 HORA(S) E 0 MINUTO(S)
输入样例3:
7 10 8 9
输出样例3:
O JOGO DUROU 0 HORA(S) E 59 MINUTO(S)
下面进行解法思路的详解(这里提供三种思路及解决方案)
一、直接按照时间属性进行讨论(最复杂考虑的情况最多)
1. 思路
对于此题目来说 如果根据时间属性进行讨论 又可以分为两大子属性–小时和分钟。
对于这样两个属性进行分析时,都需要考虑如果开始时间的分钟比结束时间分钟少的情况(这种情况就需要在小时位上借一);
那么针对两种情况进行简单分析可知 对分钟进行分类讨论更方便(情况容易合并处理+小时需要减一也是分钟情况进行控制的);
2. 图示分析
- 对hour的讨论
- 对min的讨论
对上面两种情况分析之后容易发现,对分钟进行分析最为科学有效(即按照是否进行“借位”进行分类)。
3. 实现代码(C++)
# include <iostream>using namespace std;int main(void){int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);int hour,min;if(b<d){min = d-b;if (a<=c) hour = c-a;else hour = (24-a)+c;}else if (b>d) {min = (60-b)+d;if (a<c) hour = c-a-1; //注意此处的所有情况都需要减一(对小时来说)因为分钟的缺失需要借1else hour = (23-a)+c;}else {min = 0;if (a<c) hour = c-a;else hour = (24-a)+c;}printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)",hour,min);return 0;
}
二、直接把时间问题间接转化为数量问题
1. 思路
主要思路就是绕过小时和分钟这两个不同单位之间的换算,把两个时间全部换算为分钟制度,以此避免了借位这一头疼的问题。
2. 具体解决
具体解决又两个方法,个人更推荐第二种(也就是y总的处理方式)
- 对两个时间点换算后的分钟值进行比较分类;
- 对两个时间点换算后做差的值的正负进行处理(直接对与spend_time的分类更为优雅,也体现了单出口这一特性)。
3. 实现代码(C++)
#include <iostream>using namespace std;int main(void){int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);int t1,t2,t;//t1为第一个时间换算为分钟 //t2为第二个时间换算为分钟//t为相差时间的分钟 t1 = a*60+b;t2 = c*60+d;if(t1<t2){t = t2-t1;printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)",t/60,t%60);}else{t = (1440-t1)+t2;printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)",t/60,t%60);}return 0;
}
//y总的代码 666 直接把目光放到对于spend_time的处理上
#include <iostream>using namespace std;int main(void){int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);int start,end,spend_time;start = a*60+b;end = c*60+d;spend_time = end-start;if(spend_time<=0) spend_time += 1440;printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)",spend_time/60,spend_time%60);return 0;
}
over
蓝桥杯备赛--AcWing 668. 游戏时间2相关推荐
- 蓝桥杯备赛(五) 双指针,BFS与图论
蓝桥杯备赛(五) 双指针,BFS与图论 一.双指针 1.Acwing 1238. 日志统计 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有 N 行. 其中每一行的 ...
- 【蓝桥杯备赛】历年真题解答+知识点总结
文章目录 历年真题 算法思维 1. 模拟 1.1日期处理 1.1.1 解法一:win自带的计算器 1.1.2 解法二:Excel+手算 1.1.3 解法三:代码实现 1.2 全排列 1.3 判断回文数 ...
- 蓝桥杯备赛 | 官方题库基础练习(含VIP试题)试题+答案(共33题)
引言 最近在进行蓝桥杯python组的备赛学习,做了官方题库中的基础练习,包括VIP题库,下面是所有试题和AC代码,所有代码都已经通过测试(VIP试题的测试方法见https://blog.csdn.n ...
- 蓝桥杯备赛经验分享---如何拿蓝桥国一?
好久没有正儿八经地写过博客了,今天分享一些自己学习算法的一些经验吧(虽然我很菜 !(OvO)!) step1: 1.你已经有一定的语言基础了,最好对C++/java语法比较熟悉: 2.可以较为熟练地使 ...
- Java在ACM竞赛中的技巧(蓝桥杯备赛总结)
前言:笔者在这段时间准备蓝桥杯竞赛,由于个人原因选择Java作为语言,刷题中也是不断感到Java有些语法还是不够方便(非常羡慕隔壁C++的STL-),不过有些常见的技巧/方法/模板,也是自己做了些总结 ...
- 蓝桥杯备赛(网站推荐和一些资料)
- 首先我唠叨两句,自己对于蓝桥杯的看法 有很多人说,蓝桥杯300报名费会不会太贵了,他们甚至直接称之为"圈钱杯",(可以参加校赛,然后学校付钱)这点我不做过多评论,毕竟事实摆在那 ...
- 蓝桥杯备赛笔记-规律题
今年大三,开始准备蓝桥杯大赛,在做了第七届以及第六届的题以后,对于蓝桥杯的考点以及考查方式有了一定的了解,这里做一个小结. 蓝桥杯的考察点每年都会考三类题型,第一种是规律题,典型特征是给出一个变化情况 ...
- 【蓝桥杯单片机笔记】蓝桥杯备赛资料
资料目录 资料都是来源自网络,侵删 下载链接 提取码:01xh 蓝桥杯必背 sfr AUXR = 0x8e; sfr P4=0xC0; //矩阵键盘 DS18B20 可添加到main函数里面 void ...
- 《蓝桥杯备赛》CT117E嵌入式竞赛板LCD驱动库的使用(带完整源码)
声明:开发板为蓝桥杯CT117E Rev 1.1,资源只用于学习用途 1.蓝桥杯LCD驱动库(官方提供) lcd.c /*程序说明: CT117E嵌入式竞赛板LCD驱动程序软件环境: Keil uVi ...
最新文章
- jieba中文分词源码分析(四)
- modernizr 支持html5,使用modernizr.js检测浏览器对html5以及css3的支持情况
- linux 文件和打印机共享文件夹,linux服务器向windows客户端提供文件/目录及打印机共享...
- 【转】Matlab axis用法
- JavaScript 和 typeScript 中的 import、from
- K8S从懵圈到熟练 - 节点下线姊妹篇
- 存储如何做远程服务器数据备份_如何选择存储用的服务器?
- matlab repmat_三行MATLAB实现动漫风格照片
- gwas snp 和_Science | 群体研究新思路:De novo + GWAS
- 分布式统一框架的设计与实现(数据库)
- 计算机技术服务的增值税税率,咨询系统集成技术服务税率
- base64-图片传输
- python中系统找不到指定文件怎么办_python 系统找不到指定的文件
- 敬业签电脑桌面便签软件怎么绑定手机号码?
- unity2.5D动画学习笔记(一):添加人物四向移动动画及脚本
- 无法打开U盘中的虚拟机
- 门头沟的《一出好戏》
- 记录高德地图H5导航
- 2021_RecSys_Together is Better: Hybrid Recommendations Combining Graph Embeddings and Contextualized
- daas 数据即服务_什么是daas