码迷,mamicode.com
首页 > 其他好文 > 详细

【BZOJ 1876】 [SDOI2009]SuperGCD

时间:2015-04-19 10:15:49      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:bzoj   oi   高精度   python   

1876: [SDOI2009]SuperGCD

Time Limit: 4 Sec Memory Limit: 64 MB
Submit: 1750 Solved: 560
[Submit][Status][Discuss]
Description

Sheng bill有着惊人的心算能力,甚至能用大脑计算出两个巨大的数的GCD(最大公约 数)!因此他经常和别人比赛计算GCD。有一天Sheng bill很嚣张地找到了你,并要求和你比 赛,但是输给Sheng bill岂不是很丢脸!所以你决定写一个程序来教训他。
Input

共两行: 第一行:一个数A。 第二行:一个数B。
Output

一行,表示A和B的最大公约数。
Sample Input

12

54

Sample Output

6

HINT

对于20%的数据,0 < A , B ≤ 10 ^ 18。
对于100%的数据,0 < A , B ≤ 10 ^ 10000。

Source

Day1

更相减损术+高精度/python

高精度模高精度很难写,所以这题最好用更相减损术:
若A,B是偶数,Gcd(A,B)=2*Gcd(A/2,B/2)
若A是奇数,B是偶数,Gcd(A,B)=Gcd(A,B/2)
若A是奇数,B是奇数,Gcd(A,B)=Gcd(A-B,B)

我是用python水过得。。

a,b=input(),input()
c=a%b
while c!=0L:
    a=b
    b=c
    c=a%b
print b

技术分享

注意:如果直接写递归版的gcd就会因为爆栈而WA

【BZOJ 1876】 [SDOI2009]SuperGCD

标签:bzoj   oi   高精度   python   

原文地址:http://blog.csdn.net/regina8023/article/details/45126401

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!