洛谷:P5707 【深基2.例12】上学迟到 (纯净的顺序结构)
本文纯作者吃饱了没事干写的,仅供奇特思路参考和娱乐
最近尝试找一个体量精良的刷题平台重新提升一下自己的编程能力,所以选择了洛谷。
题目描述
学校和 yyy 的家之间的距离为 s 米,而 yyy 以 v 米每分钟的速度匀速走向学校。在上学的路上,yyy 还要额外花费 10 分钟的时间进行垃圾分类。学校要求必须在上午 8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。
输入格式
一行两个正整数 s ,v 分别代表路程和速度。
输出格式
输出一个 24 小时制下的时间,代表 yyy 最晚的出发时间。
输出格式为 HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0。
由于是根据题单做的题,这道题被放在顺序结构中,所以本题我尝试不使用顺序结构以外的任何结构。
最初需要计算的数据也就是所需要花的时间。众所周知时间是没有浮点值一说的,所以说路程和速度能够整除便直接加上,否则还需要额外加1分钟。我们很容易能想到使用布尔代数来代替条件分支,即:
t=s/v+10+(bool)(s%v);
接下来就是要将时间换算为24小时制,也就是分别得出时和分的数据。
min=t%60;
h=t/60;
问题来了。这个要我们得出应该在07:00之前的最晚时间,也就是需要根据这个时和分的数据与之相减。很多题目都使用了条件分支,这个倒是一个非常便利的思路。但如果不使用条件分支,我们可以考虑使用取模运算。
很明显,如果花费的小时时间超过7小时,很容易得到小时数可以表示为 24+7+h(因为7+h很明显是负数)。
而如果花费的小时时间小于7小时,很明显这个数字会比我们期望的小时数多了24小时,因此我们只需要对此进行24取模,便可得到正常的数值。
所以接下来的小时数可以表示为:
h=(31-h)%24
而对于分的数值,很简单想到的便是直接表示为:
min=60-min
最初本人也是这么想的,然后提交,第三个和第五个案例一直不通过。经过长时间的摸索我惊讶地发现,假如徒步行走需要的时间是50分钟,那么得到的输出结果是 6:60。很明显,分数值需要进行60取模。
min=(60-min)%60
最终,由于输出的结果要保证时和分都有两位填充,因此需要调用setw()和setfill()函数。所以最终我的代码是:
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int s,v,t,h,min; cin>>s>>v;
t=s/v+10+(bool)(s%v);
min=t%60;
h=t/60;
cout<<setw(2)<<setfill('0')<<(31-h)%24<<":"<<setw(2)<<setfill('0')<<(60-min)%60<<endl;
}
说实话,这种代码其实是纯吃饱了没事干才这么写的,毕竟有条件分支不用都是神人了。
但话又说回来,有的时候一些奇怪的问题就是需要一些这样看似奇怪的思路。当然也许是本人数论期中没考好所以有些PTSD了吧……
仅供娱乐。
洛谷:P5707 【深基2.例12】上学迟到 (纯净的顺序结构)的更多相关文章
- 洛谷 P1478 陶陶摘苹果(升级版)【贪心/结构体排序/可用01背包待补】
[链接]:https://www.luogu.org/problemnew/show/P1478 题目描述 又是一年秋季时,陶陶家的苹果树结了n个果子.陶陶又跑去摘苹果,这次她有一个a公分的椅子.当他 ...
- 【LGR-(-8)】洛谷入门赛 #5 题解
比赛链接 9道题. 注:题目名称中链接为题目链接,题号中链接为比赛内链接 题目编号 洛谷题号 题目名称 题目难度 A P5713 [深基3.例5]洛谷团队系统 \(\color{red}{入门}\) ...
- 【vector+pair】洛谷 P4715 【深基16.例1】淘汰赛
题目:P4715 [深基16.例1]淘汰赛 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题因为数据范围不大,所以做法可以非常简单,使用一个vector加上pair就可以了: ...
- 洛谷 P5706 【深基2.例8】再分肥宅水
题目连接: P5706 [深基2.例8]再分肥宅水 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 我提交的: 1 #include<iostream> 2 #inclu ...
- 洛谷 P4478 [BJWC2018]上学路线
洛谷 P4478 [BJWC2018]上学路线 原题 神仙题orz,竟然没有1A....容斥+卢卡斯+crt?? 首先用容斥做,记\(f[i][0/1]\)表示到i号点经过了奇数/偶数个点的方案数,因 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- 洛谷P1017 进制转换
洛谷P1017 进制转换 题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 \(1*10 ...
- 洛谷P1214 [USACO1.4]等差数列 Arithmetic Progressions
P1214 [USACO1.4]等差数列 Arithmetic Progressions• o 156通过o 463提交• 题目提供者该用户不存在• 标签USACO• 难度普及+/提高 提交 讨论 题 ...
- 洛谷 P1890 gcd区间
P1890 gcd区间 题目提供者 洛谷OnlineJudge 标签 数论(数学相关) 难度 普及/提高- 题目描述 给定一行n个正整数a[1]..a[n]. m次询问,每次询问给定一个区间[L,R] ...
- 洛谷P1220 关路灯
洛谷1220 关路灯 题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关 ...
随机推荐
- SMU 2024 spring 天梯赛2
SMU 2024 spring 天梯赛2 7-1 计算指数 - SMU 2024 spring 天梯赛2 (pintia.cn) #include <bits/stdc++.h> usin ...
- 网卡DM9000裸机驱动详解
一.网卡 1. 概念 网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件.由于其拥有MAC地址,因此属于OSI模型的第2层.它使得用户可以通过电缆或无线相互连接. 每一个网卡都有一个被称 ...
- TF-IDF 算法原理以及源码实现
TF-IDF(Term Frequency-Inverse Document Frequency),是用来衡量一个词在文档中的重要性,下面看一下TDF-IDF的公式: 首先是TF,也就是词频,用来衡量 ...
- CANopen学习笔记(三)NMT
NMT NMT主要用来管理和控制各个节点的状态,具体协议可以分为以下四类: NMT protocol Node guard protocol Heartbeat protocol Bootup pro ...
- 使用 AWS CLI 管理 S3
S3 是 AWS 的对象存储服务 S3: Simple Storage Service 创建桶 使用 aws s3 mb 命令创建新的 S3 桶.您需要提供一个全球唯一的桶名称和创建桶的区域. aws ...
- 补天云全网独有技术和唯一实用工具:QT6框架QML源码保护工具应用 QML和JavaScript源码隐藏工具
如何保护和隐藏你的QT应用中的QML源代码?补天云全网独有技术和唯一实用工具:QT6框架QML源码保护工具应用 QML和JavaScript源码隐藏工具 简介 在通常的QT QML应用程序中,QML语 ...
- foobar2000 v1.6.13 汉化版(更新于2022.11.22)
foobar2000 v1.6.13 汉化版 -----------------------[软件截图]---------------------- -----------------------[软 ...
- eUSB是什么/可以干什么?
eUSB总结 1.什么是eUSB 1.1 eUSB概念 eUSB是原USB物理层上的补充,为了解决USB_phy低压需求的问题而出现的,eUSB可以将信号电平降至1.2V甚至更低,与此同时可以优化电源 ...
- USB 控制写传输、控制读传输、无数据控制传输都是在什么场景下?
在 USB 通信中,控制传输(Control Transfer)是一个非常常见且重要的传输类型,主要用于配置设备.查询设备状态以及发送和接收命令.控制传输有三种主要形式:控制写传输(Control W ...
- 2021年7月国产数据库排行榜:openGauss成绩依旧亮眼,Kingbase向Top 10发起冲刺
7月份的国产数据库流行度排行榜已经揭晓.本期榜单展示的136个数据库中,近三分之二实现了评分增长.笔者认为这与6月份中国信通院发布第十二批大数据产品能力评测结果有关,65家企业的120款产品通过了本次 ...