ACM_GCD/LCM.etc
LzyRapX
Just For Fun .
展开
-
最大公约数与欧几里德算法
记a、b的最大公约数为gcd(a,b)。这里对于最大公约数的讨论仅限于非负整数,因为显然有gcd(a,b)=gcd(|a|,|b|)。计算最大公约数的Euclid算法基于下面定理:【GCD递归定理】对于任意非负整数a和任意正整数b,gcd(a,b)=gcd(b,a%b)。Euclid算法最简单的递归版本(C语言版)如下:#include #includeusing name原创 2016-03-03 13:59:56 · 961 阅读 · 0 评论 -
51nod 1256 乘法逆元 (exgcd)
题目链接: 点击打开题目链接题解: K∗MmodN=1K*M\mod N=1等价于 K∗M=N∗X+1K*M=N*X+1 。即 K∗M+N∗(−X)=1K*M+N*(-X)=1 。 可以用扩展欧几里德,求出KK和(−X)(-X); 而KK要是正整数的,即如果KK为负整数,则需要将之化正,即与负数取模同理,将KK加上NN,直至K>0K>0为止,所得的数即为最小的乘法逆元; 如果K为正整数,原创 2017-05-21 16:29:13 · 538 阅读 · 0 评论 -
VK cup Div1 C. Vulnerable Kerbals (扩展gcd+DAG+最长路)
题目链接:点击打开链接http://codeforces.com/contest/800/problem/CC. Vulnerable Kerbals题意:给定n个0~m-1内的数和m,构造一个尽可能长的所有元素都在0~m-1内的数列,并且使所有前缀积模m不相同且不在n个数中出现过。题解:如果前 i 个数的前缀积为x,前i+1个数的前缀积可以为y当且仅当ax-b原创 2017-04-19 14:08:17 · 1222 阅读 · 0 评论 -
#7 C. Line (扩展欧几里得)
题目链接:点击打开链接http://codeforces.com/contest/7/problem/CC. LineA line on the plane is described by an equation Ax + By + C = 0. You are to find any point on this line, whose co原创 2017-04-10 20:50:48 · 486 阅读 · 0 评论 -
HDU 1577 WisKey的眼神 (GCD求直线上的点数)
WisKey的眼神Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2979 Accepted Submission(s): 938Problem DescriptionWisKey的眼镜有500多度,所以眼神不大好原创 2016-10-19 00:00:45 · 568 阅读 · 0 评论 -
Problem 5 Smallest multiple(LCM)
Smallest multipleProblem 52520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.What is the smallest positive number that is evenly di原创 2016-10-25 23:19:10 · 490 阅读 · 0 评论 -
HDU 5734 Acperience (数学)
AcperienceTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1051 Accepted Submission(s): 564Problem DescriptionDeep neural networks (原创 2016-08-02 17:04:13 · 632 阅读 · 0 评论 -
HDU 5726 GCD (线段树维护区间gcd)
GCDTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2445 Accepted Submission(s): 855Problem DescriptionGive you a sequence of N(N原创 2016-08-01 13:56:16 · 2812 阅读 · 0 评论 -
HDU 5780 BestCoder Round #85 gcd (数论---欧拉函数)
gcdTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 125 Accepted Submission(s): 41Problem DescriptionLittle White learned the grea原创 2016-07-31 15:51:55 · 689 阅读 · 0 评论 -
HDU 1722 Cake (GCD+数学)
CakeTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3331 Accepted Submission(s): 1731Problem Description一次生日Party可能有p人或者q人参加,现准备有一个原创 2016-07-19 20:39:40 · 566 阅读 · 0 评论 -
扩展的欧几里德算法求乘法逆元
计算乘法逆元,比如3mod8的乘法逆元为3是如何用欧几里得算法计算的呢???数对 x,y ,使得 gcd(a,b)=ax+by。c++语言实现:#include #include#includeusing namespace std;int x,y,q;void ex_Eulid(int a,int b){ if(b==0){ x=1;y=0;q=a;原创 2016-04-09 10:12:22 · 13429 阅读 · 0 评论 -
HDU 2504 又见GCD(gcd)
又见GCDTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15213 Accepted Submission(s): 6393Problem Description有三个正整数a,b,c(0 Inp原创 2016-05-21 00:55:43 · 611 阅读 · 0 评论 -
HDU 2028 Lowest Common Multiple Plus(LCM)
Lowest Common Multiple PlusTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 50348 Accepted Submission(s): 20830Problem Description原创 2016-05-02 20:30:48 · 430 阅读 · 0 评论 -
HDU 2503 a/b + c/d(GCD)
a/b + c/dTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12234 Accepted Submission(s): 6507Problem Description给你2个分数,求他们的和,并要求和原创 2016-05-21 00:40:45 · 596 阅读 · 0 评论 -
欧几里德算法
欧几里德是用来求最大公约数的,可以把它看成是状态转移,对任意两个数a,b(a>b),d=gcd(a,b),如果b不为零,那么gcd(a,b)=gcd(b,a%b) 证明: 令 r=a%b,即存在k,使得 a=b*k+r,那么r=a-b*k;显然r>=0, r%d=((a%d)-(b*k)%d)%d,因为a%d=b%d=0,所以r%d=0;因此求gcd(a,b原创 2016-04-09 00:33:29 · 421 阅读 · 0 评论 -
扩展欧几里德算法理解(二)
原创 2016-04-09 00:48:57 · 757 阅读 · 0 评论 -
扩展欧几里德知识(一)
理解欧几里德,那么扩展欧几里德就能很容易理解了,对任意a,b(a>b),我们列出这样一个式子: a*x+b*y=gcd(a,b);不要觉得扩展欧几里德很牛逼,它就是一个算x,y的一个方法,只是在上面gcd中多了处理x,y的步骤我们这样来想:已知当前的一个状态:a1 b1 x1 y1, a1*x1+b1*y1=gcd(a1,b1),注意这里的a1,b1是求gc原创 2016-04-09 00:44:29 · 611 阅读 · 0 评论 -
ACdream 1077 LCM Challenge (数学题)(LCM)
题目链接: ACdream 1077题解: 要使LCMLCM最大,那么显然就是要gcd(gcd(a,b)∗gcd(b,c)∗gcd(a,c))=1gcd(gcd(a,b)*gcd(b,c)*gcd(a,c))=1,如果nn是奇数,那么答案显然是n∗(n−1)∗(n−2)n*(n-1)*(n-2)。 如果nn是偶数,且n%3=1n\%3=1时,答案显然是n∗(n−1)∗(n−3)n*(n-1)*原创 2017-06-19 14:52:13 · 347 阅读 · 0 评论