hdu 5276 钟表 (暴力+数学 )

来源:互联网 发布:外置光驱盒 mac 编辑:程序博客网 时间:2024/04/30 11:24

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

题意:给出时针和分针的角,所有可能满足出现这个角度的时间点。要求精确到10秒的单位;

自己接暴力,因为题目要求角角度<=180, 并且*12000。所给角度X不超过2160000(现在我们把 2160000看做是 180扩大12000倍);

时针走180=6小时=6*60分=6*3600秒=21600秒;
分针走180=30分=30*60秒=1800秒;

故 时针每走一秒相当于  2160000的 100个单位;分针每走一秒相当于2160000的 1200 =(2160000 / 1800)个单位;

好吧,对于愚蠢的我来说这道题确实看了好久,总感觉弄不清楚,是数学不好么,不是吧,ee , 低调低调,说多了显智商....


说好的代码呢?

#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <cstdlib>#include <vector>using namespace std;#define INF 0x3f3f3f3fint main(){    int n,i,j,k;    while(scanf("%d",&n)!=EOF)    {        for(i=0;i<12;i++)        {            for(j=0;j<60;j++)            {                for(k=0;k<=50;k=k+10)                {                    int t1=(i*3600+j*60+k)*100;                    int t2=(j*60+k)*1200;                    int t=abs(t1-t2);                    if(t>2160000)                        t=2160000*2-t;  ///大于180度时                     if(t==n)                        printf("%02d:%02d:%02d\n",i,j,k);                }            }        }    }    return 0;}

0 0
原创粉丝点击