在线编程介绍
阿里云开发者社区在线编程产品,针对广大开发者学习、实践、面试、应聘、考试认证等打造的免费在线刷题神器。题库来自笔试模拟题、算法大赛模拟题等,界面整洁明了,操作简单,为用户营造专心答题的学习环境。点击链接开始体验:https://developer.aliyun.com/coding
本文为大家介绍其中的 第96题:滑雪比赛 的题目解析,具体如下:
题目描述
题目等级:容易
知识点:模拟
查看题目:滑雪比赛
Jerry造完滑雪场之后又修建了一条长度为M的滑雪赛道,他邀请了一些朋友来他的滑雪场进行滑雪比赛,第一名将会Jerry版滑雪套装!
Jerry一共邀请了N个朋友来他的滑雪场参加滑雪比赛,由于他的朋友都不是专业的滑雪运动员, 所以每滑一会儿雪都要停下来休息一会儿补充体力,也就是说Jerry的第i个朋友在滑雪滑了ti秒之后,需要停下来休息si秒来补充体力,在休息期间位置不会变化。他们的滑雪速度都是a m/s,只有当第一个人滑倒终点的时候才会比赛结束。
请问比赛进行了多久之后会结束?
前三行分别输入三个整数N,M,A表示Jerry的朋友数量,赛道的长度,Jerry的朋友滑雪速度 (2≤N≤1000),(1≤M≤10000),(1≤A≤100) ,M是A的倍数
接下来N行,每行两个整数ti和si (1≤ti≤100),(1≤si≤100)
输出一个整数,表示比赛开始后经过多少秒结束
示例1
输入:
2
100
1
[[10,5],[5,10]]
输出:
145
注意
第一个人,滑雪9次,休息9次,再滑1次就达到终点,比赛就结束了,一共经历了10 9+5 9+10=145 s
解题思路
可以分别计算出每个朋友滑到终点所需要的时间,比较得出其中的最小值即为比赛结束时间。
要注意的一点是,如果在到达终点时刚好需要休息,那这个休息的时间是不用计算的。
计算朋友滑到终点所需要的时间可以分为两部分,一部分是完整周期(一个完整周期等于朋友滑一次雪加休息一次),一部分是周期外的剩余时间。完整周期外的时间单独计算,这部分时间全部为滑雪时间。
将这两部分时间加起来就可以得到一个朋友滑到终点所需要的时间。比较朋友花费的时间,得出的最小时间即为答案。
时间复杂度:O(n)
空间复杂度:O(1)
看完之后是不是有了想法了呢,快来练练手吧>>查看题目:滑雪比赛