【洛谷算法题】P5707-上学迟到【入门1顺序结构】

简介: 【洛谷算法题】P5707-上学迟到【入门1顺序结构】

【洛谷算法题】P5707-上学迟到【入门1顺序结构】

🌏题目描述

学校和 yyy 的家之间的距离为 s ss 米,而 yyy 以 v vv 米每分钟的速度匀速走向学校。

在上学的路上,yyy 还要额外花费 10 1010 分钟的时间进行垃圾分类。

学校要求必须在上午 8:00 \textrm{8:00}8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。

由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。

🌏输入格式

一行两个正整数 s , v s,vs,v,分别代表路程和速度。

🌏输出格式

输出一个 24 2424 小时制下的时间,代表 yyy 最晚的出发时间。

输出格式为 HH:MM \texttt{HH:MM}HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0 00

🌏样例 #1

🌙样例输入 #1

100 99

🌙样例输出 #1

07:48

🌏提示

对于 100 % 100\%100% 的数据,1 ≤ s , v ≤ 1 0 4 1 \le s,v \le 10^41s,v104

🌏题解

import java.util.Scanner;
public class P5707 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        double s = in.nextDouble(), v = in.nextDouble();
        // yyy 走路总共需要花费的时间, 要加上 yyy 进行垃圾分类的 10 分钟
        double t = Math.ceil(s / v) + 10;
        // 时间在 8 小时以内
        if (t <= 60 * 8) {
            // 输出小时
            System.out.printf("%02.0f:",8 - Math.ceil(t / 60));
            // 输出分钟
            if ((60 - t % 60) == 60) { // 整点的情况
                System.out.print("00");
            } else { // 不是整点
                System.out.printf("%02.0f",60 - t % 60);
            }
        // 时间超过 8 小时
        } else {
            // 输出小时
            t = t - 60 * 8;
            System.out.printf("%02.0f:",24 - Math.ceil(t / 60));
            // 输出分钟
            if ((60 - t % 60) == 60) {
                System.out.print("00");
            } else {
                System.out.printf("%02.0f",60 - t % 60);
            }
        }
        in.close();
    }
}

🌏总结

这个题考查我们运用编程语言对时间日期的操作,做时间日期类的题目一定要注意临界条件,比如当分钟达到 60 分时,分钟显示的应该是 00,而不是 60,同时小时要加 1。这里我们用到了数学函数double Math.ceil(double a),这个函数返回一个大于等于 a 的 double 类型的值,相当于对浮点数向上取整。比如Math.ceil(3.01)的结果就是 4.0,也可以将其转换为整数 4。

作者:花无缺(huawuque404.com)

相关文章
|
2月前
|
存储 算法
算法入门:专题二---滑动窗口(长度最小的子数组)类型题目攻克!
给定一个正整数数组和目标值target,找出总和大于等于target的最短连续子数组长度。利用滑动窗口(双指针)优化,维护窗口内元素和,通过单调性避免重复枚举,时间复杂度O(n)。当窗口和满足条件时收缩左边界,更新最小长度,最终返回结果。
|
2月前
|
存储 监控 算法
基于 Go 语言跳表结构的局域网控制桌面软件进程管理算法研究
针对企业局域网控制桌面软件对海量进程实时监控的需求,本文提出基于跳表的高效管理方案。通过多级索引实现O(log n)的查询、插入与删除性能,结合Go语言实现并发安全的跳表结构,显著提升进程状态处理效率,适用于千级进程的毫秒级响应场景。
166 15
|
2月前
|
分布式计算 并行计算 算法
《数据之美》:图结构的精妙世界与算法实践
图是表示多对多关系的非线性数据结构,由顶点和边组成,可建模社交网络、路径导航等复杂系统。核心算法包括BFS/DFS遍历、Dijkstra最短路径、Floyd-Warshall全源最短路径,以及Prim和Kruskal最小生成树算法,广泛应用于推荐系统、社交分析与路径规划。
|
2月前
|
存储 算法
算法入门:专题一:双指针(有效三角形的个数)
给定一个数组,找出能组成三角形的三元组个数。利用“两边之和大于第三边”的性质,先排序,再用双指针优化。固定最大边,左右指针从区间两端向内移动,若两短边之和大于最长边,则中间所有组合均有效,时间复杂度由暴力的O(n³)降至O(n²)。
|
2月前
|
存储 算法 编译器
算法入门:剑指offer改编题目:查找总价格为目标值的两个商品
给定递增数组和目标值target,找出两数之和等于target的两个数字。利用双指针法,left从头、right从尾向中间逼近,根据和与target的大小关系调整指针,时间复杂度O(n),空间复杂度O(1)。找不到时返回{-1,-1}。
|
3月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
259 3
|
3月前
|
存储 监控 算法
企业电脑监控系统中基于 Go 语言的跳表结构设备数据索引算法研究
本文介绍基于Go语言的跳表算法在企业电脑监控系统中的应用,通过多层索引结构将数据查询、插入、删除操作优化至O(log n),显著提升海量设备数据管理效率,解决传统链表查询延迟问题,实现高效设备状态定位与异常筛选。
138 3
|
5月前
|
机器学习/深度学习 数据采集 算法
你天天听“数据挖掘”,可它到底在“挖”啥?——数据挖掘算法入门扫盲篇
你天天听“数据挖掘”,可它到底在“挖”啥?——数据挖掘算法入门扫盲篇
129 0
|
9月前
|
机器学习/深度学习 算法 机器人
强化学习:时间差分(TD)(SARSA算法和Q-Learning算法)(看不懂算我输专栏)——手把手教你入门强化学习(六)
本文介绍了时间差分法(TD)中的两种经典算法:SARSA和Q-Learning。二者均为无模型强化学习方法,通过与环境交互估算动作价值函数。SARSA是On-Policy算法,采用ε-greedy策略进行动作选择和评估;而Q-Learning为Off-Policy算法,评估时选取下一状态中估值最大的动作。相比动态规划和蒙特卡洛方法,TD算法结合了自举更新与样本更新的优势,实现边行动边学习。文章通过生动的例子解释了两者的差异,并提供了伪代码帮助理解。
705 2
|
存储 缓存 算法
通过优化算法和代码结构来提升易语言程序的执行效率
通过优化算法和代码结构来提升易语言程序的执行效率
309 2

热门文章

最新文章