90分wa9测试点 求助

P5707 【深基2.例12】上学迟到

@[woyuan](/user/1241841) 是不是没判断前一天??? 我一次过也不知道9测试点数据是啥 ```cpp #include<bits/stdc++.h> using namespace std; long long n,m,s,t,v; int main(){ cin>>s>>v; t=ceil(s*1.0/v)+10; if(t<=480) printf("%02d:%02d",(480-t)/60,(480-t)%60); else printf("%02d:%02d",(1440+480-t)/60,(1440+480-t)%60); return 0; } ```
by CCF___NOI @ 2024-08-28 12:01:43


@[woyuan](/user/1241841) 少用CIN和COUT,太慢 多用PRINTF,很快; 不用endl,用"\0";
by CCF___NOI @ 2024-08-28 12:04:08


``` cpp #include<bits/stdc++.h> using namespace std; int main() { int s, v, t, h, m; cin >> s >> v; t = s / v + 10; if (s % v != 0) t += 1; h = 8 - t / 60; m = 0 - t % 60; if (m < 0) { m += 60; h--; } if (h < 0) h += 24; printf("%02d:%02d", h, m); return 0; }
by maxwr168 @ 2024-08-28 12:06:06


我好像找到一个hack数据 输入:10000 10000 我过了的程序输出的是07:49 我用你程序是07:48
by mengmeng123456 @ 2024-08-28 12:08:59


@[woyuan](/user/1241841) 你代码没有判断剩下的时间是否大于一天,如果大于一天需要减去一天的时间,所以必须向上取整,不然行走时间就会少,所以没过。(求关)
by maxwr168 @ 2024-08-28 12:11:39


@[woyuan](/user/1241841) 最后的输出可以用 ```cpp printf("%02d:%02d",[变量名],[变量名]); ``` %02d的意思就是输出两位整数,不足两位可以自动补零
by mengmeng123456 @ 2024-08-28 12:19:29


@[woyuan](/user/1241841) 你那个y为什么要减1呢
by mengmeng123456 @ 2024-08-28 12:23:05


我找到你错的地方了, ```cpp sj=sj+s/u ``` 这一行,s/u应该向上取整,因为比如说样例一,yyy的速度是99米每分钟,距离学校100米第一分钟只能走99米,离学校还有1米,这一米我们要按一分钟处理,向上取整可以用函数 ```cpp ceil() ``` 还有s和u是整数类型,没有转换的情况下,s/u是自动向下取整,所以要先强制转换成小数形式,可以写成 ```cpp s*1.0/u ``` 这样就可以完成强制转换了
by mengmeng123456 @ 2024-08-28 12:36:09


差点忘了,y-1要改成y
by mengmeng123456 @ 2024-08-28 13:11:01


@[mengmeng123456](/user/986624) 改了之后只有9测试点ac 为什么?help me
by woyuan @ 2024-08-29 11:32:12


| 下一页