HDU

 

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5276
 
Sample Input
99000 0
 
Sample Output
00:01:30
11:58:30
00:00:00
 
题意:

YJC收到了一份神秘礼物。是一个长成这样的钟。

YJC不是时间领主所以他并不能乱搞时间,但是这个钟实在是太难认了!所以他想来耍耍你。

现在YJC给你时针和分针间的夹角,让你告诉他现在是什么时候。

你将以以下格式给出可能的时间:
HH:MM:SS
分别表示小时,分钟,秒(比如:08:30:20)在这里使用12小时制,也就是说时间范围是从00:00:00到11:59:59

另外,YJC不想要太精确的时间,所以当且仅当SS mod 10 = 0,答案才合法。

 

思路:直接暴力枚举就好了。

*:使用到时针分针秒针的夹角公式

时针从0点转过的角度a=30m+n/2+k/120();

分针转过的角度b=6n+k/10();

m点n分k秒的时针和分针所夹的角=|a-b|;

知识点连接:http://wenwen.sogou.com/z/q1702045275.htm

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<stack>
 6 #include<math.h>
 7 #include<queue>
 8 using namespace std;
 9 #define INF 0x3f3f3f3f
10 #define N 12342
11 
12 int main( )
13 {
14    int n,val=360*12000;
15 
16    while(scanf("%d", &n) != EOF)
17    {
18        for(int i=0;i<12;i++)
19        {
20            for(int j=0;j<60;j++)
21            {
22                for(int k=0;k<60;k+=10)
23                {
24                    int a=30*12000*i+6000*j+100*k;///时针转过的角度
25                    int b=6*12000*j+1200*k;///分针转过的角度
26                    int c=a-b;///夹角
27 
28                    while(c>=val)
29                     c-=val;
30                    while(c<0)
31                     c+=val;
32                    if(c>val/2)
33                     c=val-c;
34                    if(c==n)
35                     printf("%02d:%02d:%02d
",i,j,k);
36 
37                }
38            }
39        }
40    }
41  return 0;
42 }

本人博客:http://www.cnblogs.com/weiyuan/

 
原文地址:https://www.cnblogs.com/weiyuan/p/5676616.html