本文主要是介绍杭电4530-小Q系列故事——大笨钟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
小Q系列故事——大笨钟
Time Limit: 600/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 869 Accepted Submission(s): 449
Problem Description
饱尝情感苦恼的小Q本打算隐居一段时间,但仅仅在3月25号一天没有出现,就有很多朋友想念他,所以,他今天决定再出来一次,正式和大家做个告别。
小Q近来睡眠情况很差——晚上睡不着,早上又起不来!以前总是全勤的他这个月甚至迟到了好几次,虽然主管没说什么,但是他自己清楚此事的严重性。
爱情没有了,小Q不想再失去面包,于是他决定买个闹钟,为求质量可靠,特意挑了个最贵的原装进口货!但是,正所谓屋漏偏逢连夜雨、人倒霉的时候喝凉水都塞牙,小Q新买的这个进口闹钟竟然每分钟总是比正确时间慢那么几秒!
可怜的小Q愤愤然道:“真是一个大笨钟!”
但是为了充分利用大笨钟,小Q还是尽力想办法搞清楚它的性能,希望能将其当作正常时钟使用。
小Q从如下三方面去研究大笨钟:
1、 假设正常时间走了t分钟,计算大笨钟走的时间;
2、 假设大笨钟走了t分钟,计算正常时间走的时间;
3、 小Q将大笨钟与当前时间调成正确时间,此时记为第0次,计算第k次大笨钟显示的时间与正确时间相同需要的时间(大笨钟的结构和普通时钟相同,即分为12大格,60小格)。
小Q近来睡眠情况很差——晚上睡不着,早上又起不来!以前总是全勤的他这个月甚至迟到了好几次,虽然主管没说什么,但是他自己清楚此事的严重性。
爱情没有了,小Q不想再失去面包,于是他决定买个闹钟,为求质量可靠,特意挑了个最贵的原装进口货!但是,正所谓屋漏偏逢连夜雨、人倒霉的时候喝凉水都塞牙,小Q新买的这个进口闹钟竟然每分钟总是比正确时间慢那么几秒!
可怜的小Q愤愤然道:“真是一个大笨钟!”
但是为了充分利用大笨钟,小Q还是尽力想办法搞清楚它的性能,希望能将其当作正常时钟使用。
小Q从如下三方面去研究大笨钟:
1、 假设正常时间走了t分钟,计算大笨钟走的时间;
2、 假设大笨钟走了t分钟,计算正常时间走的时间;
3、 小Q将大笨钟与当前时间调成正确时间,此时记为第0次,计算第k次大笨钟显示的时间与正确时间相同需要的时间(大笨钟的结构和普通时钟相同,即分为12大格,60小格)。
Input
输入数据第一行是一个正整数T,表示总共有T组测试数据;
接下来的每组数据首先输入正整数x,表示大笨钟每分钟比正常时钟慢x秒;
接下来一行是一个正整数Q,表示共有Q次询问;
接下来Q行,每行首先输入询问方式(1、2或3,对应小Q研究大笨钟的三方面),如果输入1或2,接下来输入正整数t,如果输入3,接下来输入正整数k(t和k的含义见题目)。
[Technical Specification]
T <= 100
x < 60
Q <= 100
t <= 10000
k <= 10
接下来的每组数据首先输入正整数x,表示大笨钟每分钟比正常时钟慢x秒;
接下来一行是一个正整数Q,表示共有Q次询问;
接下来Q行,每行首先输入询问方式(1、2或3,对应小Q研究大笨钟的三方面),如果输入1或2,接下来输入正整数t,如果输入3,接下来输入正整数k(t和k的含义见题目)。
[Technical Specification]
T <= 100
x < 60
Q <= 100
t <= 10000
k <= 10
Output
请输出要计算的答案,以秒为单位,保留两位小数,每次查询输出一行(参见Sample)。
Sample Input
1 1 3 1 2 2 2 3 1
Sample Output
118.00 122.03 2592000.00Hint小Q最后还想说句话:“进口货未必可靠,咱们还是支持国货吧!”AC代码+解释:#include<iostream>//这里注意正常表的秒针指向60的时候,大笨钟的秒针指向60-x#include<cstdio> #include<cstring> #include<cmath> #include<string> #include<algorithm> using namespace std; int main() {int T,x,q,t,k,z;double sum;cin>>T;while(T--){cin>>x>>q;while(q--){cin>>z;if(z==1){cin>>t;sum=((60-double(x))*t);//这里表示大笨钟每分钟都比正常时钟慢几秒再乘上分钟就是大笨钟走的时间printf("%.2lf\n",sum);}else if(z==2){cin>>t;sum=(60/(60-double(x)))*t*60;//这里(60/(60-double(x))是表示正常时钟是大笨钟的速率的多少倍再乘上走的分钟就是正常时钟走的时间printf("%.2lf\n",sum);}else if(z==3){cin>>k;sum=k*12*3600*(60/double(x));//这里(60/double(x))是表示落后的速率,落后的速率乘上整个时针走一圈的时间就是落后一次的时间差printf("%.2lf\n",sum);}}}return 0; }
这篇关于杭电4530-小Q系列故事——大笨钟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!