UVALive 6664 Clock Hands
2014-07-19 17:30
295 查看
题目链接:传送门
题目大意: 给你一只奇怪的H时间制的钟,告诉你H以及当前的hms值,让你求出过后的多少时间中秒针第一次把分针和时针之间的角度等分。
输出hms(s以分数表示)。
题目思路:最开始做到这个题目的时候关于时间制处理上面不是很会,看了解题报告,有了大致的思路
设整个时钟的角度为1
关于怎么处理H时间制,上面的公式已经有了很好的说明,是一个很好的方法。也为以后类似这样的题目提供的方法。
设经过了ss时间后,出现题目中要求的情况。则可列出式子:
即:2*(s+ss)=3600h+60m+s+ss+(60m+s+ss)*H+3600*H
化简既得:
取的是k=1时候的情况。如果k=1时三个针恰好重叠,那就取k=2时,从小到大向上取。
贴OE代码
题目大意: 给你一只奇怪的H时间制的钟,告诉你H以及当前的hms值,让你求出过后的多少时间中秒针第一次把分针和时针之间的角度等分。
输出hms(s以分数表示)。
题目思路:最开始做到这个题目的时候关于时间制处理上面不是很会,看了解题报告,有了大致的思路
设整个时钟的角度为1
关于怎么处理H时间制,上面的公式已经有了很好的说明,是一个很好的方法。也为以后类似这样的题目提供的方法。
设经过了ss时间后,出现题目中要求的情况。则可列出式子:
即:2*(s+ss)=3600h+60m+s+ss+(60m+s+ss)*H+3600*H
化简既得:
取的是k=1时候的情况。如果k=1时三个针恰好重叠,那就取k=2时,从小到大向上取。
贴OE代码
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<map> #include<cstdlib> #include<queue> #include<stack> #include<vector> #include<ctype.h> #include<algorithm> #include<string> #define PI acos(-1.0) #define maxn 10005 #define INF 0x7fffffff typedef long long ll; using namespace std; int gcd(int x,int y) { return y?gcd(y,x%y):x; } int main() { int H,h,m,s,ans_h,ans_m,ans_s; while(scanf("%d%d%d%d",&H,&h,&m,&s)&&!(!H&&!h&&!m&&!s)) { int hh=3600*h+60*m+s; int mm=60*m*H+s*H; int ss=60*s*H; int K=3600*H; int cmp=mm+hh-ss*2; cmp=(cmp%K+K)%K; int aa=119*H-1; while(1) { int a=aa; int c=cmp; int t=gcd(a,c); a/=t;c/=t; ans_h=(h+(m+(a*s+c)/(a*60))/60)%H; ans_m=(m+(a*s+c)/(a*60))%60; ans_s=(a*s+c)%(a*60); if((3600*ans_h+60*ans_m)*a+ans_s!=60*ans_m*a*H+ans_s*H) { printf("%d %d %d %d\n",ans_h,ans_m,ans_s,a); break; } cmp+=K; } } return 0; }
相关文章推荐
- UvaLive 6664 Clock Hands
- 2013 Aizu Regional Contest(UValive 6661,6662,6663,6664,6665,6669)
- UVALive-7303 Aquarium (最小生成树)
- UVALive 6198 A Terribly Grimm Problem
- UVALive 5002/ lightoj 1382 The Queue(树形DP)
- uva live 4043 km
- UVALive 3971-Assemble- 最小值最大化(二分)
- UVALive-3989 Ladies' Choice (稳定婚姻问题)
- UVALIVE 4819 最大流
- (组队赛E/F Number of Connected Components )UVALive - 7638 (并查集)
- uvalive 6303 Smartphone Manufacturing
- UVALive 4264 Message (模拟)
- UVALive-8077 Brick Walls 找规律
- UVALive 3027 Corporative Network (带权并查集)
- UVALive - 5135 Mining Your Own Business(双联通分量)
- DP->UVALive 4764
- UVALive - 3644 X-Plosives 并查集
- UVALive 4212 - Candy
- UVALive 6680 Join the Conversation (DP)
- UVaLive/LA 6811 Irrigation Lines(二部图,最小点覆盖)