题目传送门

此题zha一看非常简单。

再一看特别简单。

最后瞟一眼,还是很简单。

所以在此就唠一下GCD大法吧:

int gcd(int x,int y){
if(x<y) return gcd(y,x);
if(y==) return x;
if(x%==)
if(y%==) return *gcd(x>>,y>>);
else return gcd(x>>,y);
else
if(y%==) return gcd(x,y>>);
else return gcd(y,x-y);
}

优化过后的GCD↑

基本思路就是,如果x,y都为偶数,两数同乘2且求GCD(x/2,y/2) //分治思想

否则如果x、y任意一个是偶数,那么就把偶数的/2,因为另一个数并不是偶数,所以公因数怎么也不能*2(当前)。

最后一种情况就是取GCD(y,x-y)。因为x、y都是奇数。

这道题的程序:

#include<bits/stdc++.h>
using namespace std;
int gcd(int x,int y){
if(x<y) return gcd(y,x);
if(y==) return x;
if(x%==)
if(y%==) return *gcd(x>>,y>>);
else return gcd(x>>,y);
else
if(y%==) return gcd(x,y>>);
else return gcd(y,x-y);
}
int main(){
int a,b,c,d,t;
scanf("%d/%d",&a,&b);
scanf("%d/%d",&c,&d);
t=gcd(a*c,b*d);
printf("%d %d",b*d/t,a*c/t);
return ;
}

洛谷P1482 Cantor表(升级版) 题解的更多相关文章

  1. [NOIP1999] 提高组 洛谷P1014 Cantor表

    题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … ...

  2. 洛谷——P1014 Cantor表

    P1014 Cantor表 题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 ...

  3. 洛谷P1014 Cantor表

    P1014 Cantor表 题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 ...

  4. 洛谷 P1014 Cantor表

    P1014 Cantor表 题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 ...

  5. 洛谷 P1014 Cantor表 Label:续命模拟QAQ

    题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … ...

  6. (模拟) codeVs1083 && 洛谷P1014 Cantor表

    题目描述 Description 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/ ...

  7. 洛谷 P1014 Cantor表【蛇皮矩阵/找规律/模拟】

    题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … ...

  8. java实现 洛谷 P1014 Cantor表

    题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 - 2/1 2/2 2/3 2/4 - ...

  9. (水题)洛谷 - P1014 - Cantor表

    https://www.luogu.org/problemnew/show/P1014 很显然同一对角线的和是相等的.我们求出前缀和然后二分. 最后注意奇偶的顺序是相反的. #include<b ...

随机推荐

  1. linux小命令集合

    du -sh *  查看当前目录下的当前子目录的内存大小 df -h  查看内存占用情况 tar -xvf src.tgz ;    rsync -avzL   src/  desc/     lin ...

  2. chrome插件控制台

    在manifest.json中添加下面的几行 "background": { "scripts": ["background.js"] }, ...

  3. select、poll和epoll多路I/O复用

    一.三者的区别 select  select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被 ...

  4. linux 文件IO

    1.文件描述符 (1)文件描述符的本质是一个数字,这个数字本质上是进程表中文件描述符表的一个表项,进程通过文件描述符作为index去索引查表得到文件表指针,再间接访问得到这个文件对应的文件表.(2)文 ...

  5. Oracle中查询当前数据库中的所有表空间和对应的数据文件语句命令

    Oracle中查询当前数据库中的所有表空间和对应的数据文件语句命令 ------------------------------------------------------------------ ...

  6. 三星c7换屏幕教程

    https://jingyan.baidu.com/article/20b68a88f49cb9796cec6282.html

  7. 12款jQuery幻灯片插件和幻灯片特效教程

    jQuery 使用简单灵活,同时还有许多成熟的插件可供选择,它可以帮助你在项目中加入一些非常好的效果.滑块和幻灯片效果是常用的内容展示方式之一,这是一种在有限的网页空间内展示系列项目时非常好的方法.今 ...

  8. 数组A - 财务管理

    Larry graduated this year and finally has a job. He's making a lot of money, but somehow never seems ...

  9. CodeForces 990C

    Description A bracket sequence is a string containing only characters "(" and ")" ...

  10. ogg:Extract 进程遇长事务执行 Forcestop 引发的惨案

    http://www.linuxidc.com/Linux/2015-04/115777.htm SQL> select t.addr,t.START_DATE from v$transacti ...