1 条题解
-
0
自动搬运
来自洛谷,原作者为

C171501
**搬运于
2025-08-24 22:13:36,当前版本为作者最后更新于2020-02-27 09:07:19,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题目上给出路程与速度,即可算出时间。
由于s与v中的时间单位为分,所以我们直接将小时换算成分钟(直接好了)。
由于时间可能大于天,我们在求出来的分钟数中加上。
当我们把该时间减去行走时间和垃圾分类后,判断剩下的时间是否大于一天,如果大于一天就减去一天的时间,但你必须向上取整,不然行走时间就会少。
将剩下的时间除以得到出发时。将剩下的时间对取余得出发分。
我大概就是这样想的。上代码。
#include<bits/stdc++.h> using namespace std; double s,v,m; int n,a,t,b; int main() { cin>>s>>v; n=8*60+24*60;//两天总共的分钟数 t=ceil(s/v)+10;//ceil()很重要,向上取整,否则按C++逻辑会向下取整导致行走时间少。 n=n-t;//得出剩下的时间。 if(n>=24*60) n-=24*60;判断是否在前一天。 b=n%60;//得出出发分。 a=n/60;//得出出发时 if(a<10)//慢慢判断是否补0 { if(b<10) cout<<"0"<<a<<":0"<<b; else cout<<"0"<<a<<":"<<b; } else { if(b<10) cout<<a<<":0"<<b; else cout<<a<<":"<<b; } return 0; }第二次写题解,有错请包涵。
补充:早上没睡醒,初稿出现错误,已修正,感谢@_mliy
- 1
信息
- ID
- 4745
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者