您的位置:首页 > 其它

hdu 5276 钟表 (暴力+数学 )

2016-07-16 08:24 295 查看

题目链接: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 0x3f3f3f3f

int 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;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: