思路:
1 当p = 1 ,正常的走了k*60秒那么大笨钟走了k*(60-x)
2 当p = 2 ,大笨钟走了k*60秒那么正常走了60*k*(60/(60-x))
3 当p = 3 ,那么我们可以先算出第一次相遇用了多少时间,然后乘上k次即可。根据大笨钟1分钟少走x秒,那么一圈少走了12*60*x秒,那么第一次相遇的时候正常走了(12*3600)/(12*60*x)圈即60/x,那么k次就是k*60/x也就是12*3600*k*60/x秒
代码:
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int main(){ int Case , x , Q; int p , k; scanf("%d" , &Case); while(Case--){ scanf("%d%d" , &x , &Q); while(Q--){ scanf("%d%d" , &p , &k); if(p == 1) printf("%.2lf\n" , 1.0*k*(60-x)); if(p == 2) printf("%.2lf\n" , 60.0*k*(60.0/(60-x))); if(p == 3) printf("%0.2lf\n" , 12.0*3600*60*k/x); } } return 0; }