原题链接:https://www.luogu.org/problem/show?pid=1082#sub 此题乃exgcd的模板题,当然也可以用费马小定理做(赤裸裸的逆元啊) 还记得exgcd是啥吗?扩展欧几里得算法,用来求解形似ax+by = gcd(a,b)一类方程的解。 那和这个题有什么关系啊 ...
分类:
其他好文 时间:
2017-09-09 00:50:10
阅读次数:
218
声明:本文中的变量若非特别说明,均指整数。 定义: 扩展欧几里得算法是用于解决一类形如求解a*x+b*y=c中(x,y),或者形如a*x≡b(mod c)中x的问题。 引理(裴蜀定理): 不定方程a*x+b*y=gcd(a,b)(x,y为变量)一定有无数个解。 证明: 先证明该方程有解。 将欧几里得 ...
分类:
其他好文 时间:
2017-08-24 23:52:09
阅读次数:
191
我曾经在数论里谈过扩展欧几里得算法只有实现,我知道它可以求模线性方程的解,但是具体也没有想过,因为同余是数论中问题 现在来填下坑 什么是同余 给定一个正整数m,如果两个整数a和b满足(a-b)能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m)。 算法导 ...
分类:
其他好文 时间:
2017-08-17 18:33:44
阅读次数:
221
给定n个正整数a1,a2,…,an,求 的值(答案模10^9+7)。 Input 第一行一个正整数n。 接下来n行,每行一个正整数,分别为a1,a2,…,an。 Output 仅一行答案。 Sample Input Sample Output Hint 1<=n<=10^5,1<=ai<=10^7。 ...
分类:
编程语言 时间:
2017-08-17 00:36:58
阅读次数:
134
【问题描述】 克里特岛以野人群居而著称。岛上有排列成环行的M个山洞。这些山洞顺时针编号为1,2,…,M。岛上住着N个野人,一开始依次住在山洞 C1,C2,…,CN中,以后每年,第i个野人会沿顺时针向前走Pi个洞住下来。每个野人i有一个寿命值Li,即生存的年数。下面四幅图描述了一个有6个 山洞,住有三 ...
分类:
编程语言 时间:
2017-08-15 10:01:23
阅读次数:
204
扩展欧几里得算法 扩展欧几里得算法(扩O)能在求gcd(a,b)的同时求出丢番图方程ax+by=gcd(a, b)的解。 然而怎么求呢?我们观察gcd(a, b)=gcd(b, a%b),所以设如下两个方程: ax+by = gcd(a,b) = d; bx’+(a%b)y’ = gcd(b,a%b ...
分类:
编程语言 时间:
2017-08-02 10:23:44
阅读次数:
207
定义:当(a,p)=1时,存在ax≡1(mod p),则x叫作a在模p意义下的乘法逆元。 求法: 1.当p为质数时,由费马小定理,得ap-1≡1(mod p),即(a·ap-2)≡1(mod p),则a在模p意义下的乘法逆元是ap-2,直接用快速幂可求得。 2.当p不为质数时,用扩展欧几里得算法求a ...
分类:
其他好文 时间:
2017-08-02 00:37:01
阅读次数:
154
设正整数两两互素,则同余方程组 有整数解。并且在模下的解是唯一的,解为 其中,而为模的逆元。 普通的中国剩余定理要求所有的互素,那么如果不互素呢,怎么求解同余方程组? 这种情况就采用两两合并的思想,假设要合并如下两个方程 那么得到 在利用扩展欧几里得算法解出的最小正整数解,再带入 得到后合并为一个方 ...
分类:
其他好文 时间:
2017-07-30 20:32:11
阅读次数:
114
扩展欧几里得的模板题,要记住: x=y1; y=x1-a/b*y1。 这道题的推导过程如下: 1.因为A/B==0,所以令A/B=x,即A=Bx。又因为n=A%m,所以m*y+n=A。 由上面可推导出Bx-my=n。 2.由扩展欧几里得算法可以算出B*x1+m*y1=1的根,等式两边同时乘上n可以变 ...
分类:
编程语言 时间:
2017-07-15 11:15:15
阅读次数:
224
做oi题目的时候,遇到数论题会令我兴奋不已。 这一篇让我来聊一聊我学过的gcd,lcm,扩展欧几里得算法,逆元,组合数等。 这篇贴的代码都是未经过编译运行的,所以如果有错或有疑问请评论。 恩 那么什么是数论 和数学有关的非几何都是数论? 嘛,我也不知道定义,那么就草率地认为所有和数学有关的非计算几何 ...
分类:
其他好文 时间:
2017-07-04 23:18:47
阅读次数:
209