思路:
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;
}