杭电水题之1713
来源:互联网 发布:nginx 外网代理 编辑:程序博客网 时间:2024/05/01 08:14
我已无力吐槽此题,稍微有点文化的人都不会把题出成这样,不过说归说,这题还是应该做的。只是这题有几点要说明的。这是中文题,应该都理解吧。
只是此题的意思和我们平时所说的相遇有点不一样,我们的意识一般就是跑的块的比跑的慢的多跑了一圈(相同的时间内)。但是此题的意识是在哪里出发就在那里相遇,就是说相遇的时候,两者都回到了原来的地方。而且根据答案的说法应该是他说反了,就是说原来是(26501/6335,表示转26501圈要6335天)实际是转6335圈需要26501天,最后要说说的就是如何求这题的相遇周期。说白了相遇周期就是两个周期减分之后的最小公倍数,比如一个是转一圈两天,另一个是一天自然就是2天是相遇周期了。在这可能不是一个整数,分数的最小公倍数是这么求得,分母是两者的分母的最小公倍数,分子式分子的最大公约数。而且还有一点就原来求得就是单周期(就是转一圈所需的时间)必须输两书互质(除了一没有别的公约数),所以此题第一步需要将两者的单周期化简,下面是一个可以AC的代码。大家参考下:
#include<stdio.h>_int64 f(_int64 m,_int64 n){ _int64 a; while(a) { a=m%n; m=n; n=a; } return m;}int main(){ int n; _int64 a1,t1,a2,t2,a,b,a11,a12; char ch1,ch2; scanf("%d",&n); while(n--) { scanf("%I64d%c%I64d",&t1,&ch1,&a1); scanf("%I64d%c%I64d",&t2,&ch2,&a2); a11=f(t1,a1); a1/=a11; t1/=a11; a12=f(t2,a2); a2/=a12; t2/=a12; a=f(t1,t2); t1=t1/a*t2; b=f(a1,a2); if(t1%b==0) printf("%I64d\n",t1/b); else printf("%I64d/%I64d\n",t1,b); } return 0;
- 杭电水题之1713
- 杭电水题之2023
- 杭电水题之2030
- 杭电水题之1076
- 杭电水题之1201
- 杭电水题之4143
- 復之之理
- 博学之,审问之,慎思之,明辨之,笃行之
- 博学之,审问之,慎思之,明辨之,笃行之
- 雪,之韵,之恋,之......
- 年终总结之天涯之无敌之言论
- 万源之源之drupal 之 drupal_flush_all_caches
- 编程之美------之数字之魅
- 之记录员
- 孔乙己之
- 浩杂收之
- “##”之作用
- vc++之
- [leetcode] Valid Number
- hdu 2686&&hdu 3376 (费用流,巧妙的建图)
- asterisk模块功能及主要配置文件的作用
- JAVA开发全集
- IOS CoreData 多表查询demo解析(一)--建表
- 杭电水题之1713
- 电脑硬件名词基础扫盲
- linux下c++的编译器g++的基本使用
- poj Cows 树状数组
- MATLAB批量读取文件夹中文件,处理后放在新的文件夹中
- Jade报错:Invalid indentation,you can use tabs or spaces but not both问题
- IOS CoreData 多表查询demo解析(二)--插入测试数据
- log4j使用DailyRollingFileAppender
- Linux-3.2.0.24中内核的Netlink测试使用