hdu_5705_Clock("巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场)

原创 2016年05月31日 18:36:05

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5705

题意:给你一个时间和一个角度,问你下一个时针和分针形成给出的角度是什么时候

题解:我们可以将这个问题看成追及问题,考虑时针:每小时30°,每分钟1/2°,每秒1/120°,考虑分针:没分钟6°,每秒1/10°,如果我把全部同时乘一个120,不就能避免精度造成的问题了吗!现在再来考虑时针和分针的位置情况:这里我们以分针按顺时针的方向到时针


1:当时针和分针的θ∠大于180*120时(1)当(360*120-θ)大于给出的角度an时,需要的时间ans=h+(θ-an*120)/11,/11是因为每秒钟时针走1°,分针走12°。(2)当(360*120-θ)小于给出的角度an时,需要的时间ans=h+(θ-(360-an)*120)/11

2:当时针和分针的θ∠小于180*120时(1)当(360*120-θ)大于给出的角度an时,需要的时间ans=h+(θ-an*120)/11。(2)当(360*120-θ)小于给出的角度an时,需要的时间ans=h+(θ+an*120)/11。

最后再根据经过的时间算出当前的时间

#include<cstdio>
int hh,mm,ss,ic=1,h,m,s,an,d,ans,mo=120*360,mod=120*180;
void fuck(){
	s++,h=(3600*h+m*60+s)%mo,m=(m*720+12*s)%mo,d=(h+mo-m)%mo;
	if(d>=mod)if(an*120<mo-d)ans=h+(d-an*120)/11;else ans=h+(d-(360-an)*120)/11;
	else if(an*120<=d)ans=h+(d-an*120)/11;else ans=h+(d+an*120)/11;
}
int main(){
	while(~scanf("%d:%d:%d%d",&h,&m,&s,&an))
	fuck(),printf("Case #%d: %02d:%02d:%02d\n",ic++,ans/3600%12,ans/60%60,ans%60);
	return 0;
}



版权声明:CSDN感觉没博客园好用,而且还有广告,界面也不是很好看,所以换到博客园去了 新博客地址:www.cnblogs.com/bin-gege/

"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现) HDU 5705

Clock Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Su...

"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现) HDU 5704

Luck Competition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others...

"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现) HDU 5703

Desert Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total S...

"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场训练总结【9/10】

Ac题数:7 总罚时:540 A.结构体排序水题。 B.规律题。 C.暴力枚举即可。 D.模拟即可。 E.爆搜即可。 F.类似LCS的那种Dp.设定Dp【i】【j】表示...

"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现)解题思路

"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现)解题思路

"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场 Combine String

题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1006&cid=714 题意:给你两个字符串a和b,再给你一个字符串c...

HDU6027 Easy Summation 2017中国大学生程序设计竞赛 - 女生专场

水题,但是现场没做对,记录一下

HDU6024 Building Shops 2017中国大学生程序设计竞赛 - 女生专场

Building Shops Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)...

2017中国大学生程序设计竞赛 - 女生专场(重现)

1001 代码:#include using namespace std;struct node { int flag,sum; }a[10000];int main() { int...

2017中国大学生程序设计竞赛 - 女生专场

题意:给你测试数据数,题目数和提交次数,及每次提交的题目ID,时间和结果,求所用总时间. 计算规则: 若AC了题目,则用AC时时间+之前该题提交非正确次数*20 有个坑,即使一个题目错了1w次,最后没...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu_5705_Clock("巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场)
举报原因:
原因补充:

(最多只允许输入30个字)