P5707 WA on #8 #9 #10
查看原帖
P5707 WA on #8 #9 #10
1348546
Advence_for_4_hours楼主2025/7/29 15:53

直接把注释当草稿用。

回头刷入门题单被小学数学难飞了,至今未知代码错因,请大佬指点。

#include<bits/stdc++.h>
using namespace std;
int s,v,h,m,t;
//P5707
int main(){
    cin>>s>>v;
    //8时00分(是这么读吗。。)-10分=7时50分=(7*60+50)分钟=470分钟 
	//求时间公式t=s/v
	//(带单位)t分钟=s米/v米每分钟 
	//m=470-s/v;
	//一天1440分钟 
	//08:00~24:00 960分钟 
	if(s/v<470){
		if(s%v!=0){
			t=470-s/v-1;
		}
		else{
			t=470-s/v;
		}
		h=t/60;
		m=t%60;
		if(m==60){
			m=0;
		}
		if(m<10) cout<<'0'<<h<<':'<<'0'<<m;
		else cout<<'0'<<h<<':'<<m;
	}
	else{
		if(s%v!=0) t=1440-480-(s/v-1-470);
		else t=1440-480-(s/v-470);
		h=(t-480)/60;
		m=(t-480)%60;
		if(m==60){
			m=0;
		}
		if(h<0){
		    h+=24;
		}
		if(h<10){
			if(m<10) cout<<'0'<<h<<':'<<'0'<<m;
			else cout<<'0'<<h<<':'<<m;
		}
		else{
			if(m<10) cout<<h<<':'<<'0'<<m;
			else cout<<h<<':'<<m;
		}
	}
	return 0;
}
/*
情况1:当s/v<470时 
   day n-1          day n
08:00          00:00    07:50 08:00
|________________|++++?****|___|
                 \----v---/
                  470 min
\--------------v--------------/
           1440 min
此时+段(分钟)=470-s/v

情况2:当470<s/v时 
   day n-1          day n
08:00          00:00    07:50 08:00
|__________?*****|*********|___|
                 \----v---/
                  470 min
\--------------v--------------/
           1440 min
此时时间(分钟)=1440-480-(s/v-470) 
*/
2025/7/29 15:53
加载中...