扩展欧几里德算法: 谁是欧几里德?自己百度去 先介绍什么叫做欧几里德算法 有两个数 a b,现在,我们要求 a b 的最大公约数,怎么求?枚举他们的因子?不现实,当 a b 很大的时候,枚举显得那么的naïve ,那怎么做? 欧几里德有个十分又用的定理: gcd(a, b) = gcd(b , a% ...
分类:
其他好文 时间:
2018-07-29 20:02:56
阅读次数:
155
拓展欧几里得 扩展欧几里得算法介绍: 前置知识:欧几里得算法(其实就是辗转相除法,用于计算两个整数a,b的最大公约数。) 欧几里得算法: 在开始之前,我们先说明几个定理: gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|) 公式表述及证明 gcd(a,b)=gcd(b, ...
分类:
其他好文 时间:
2018-07-28 20:31:30
阅读次数:
190
在上一次总结过后鸽了没多久其实是快要开学赶紧来肝上两篇 今日内容——同余方程和扩展欧几里得算法 同余 同余的定义:若存在两个整数a,b,使得(a - b) MOD P为0,则称作a与b在MOD P的情况下同余 换种通俗的说法,就是,a MOD P与b MOD P相等 记作 \( a\equiv b ...
分类:
编程语言 时间:
2018-07-25 01:09:28
阅读次数:
198
一。欧几里得算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 递归实现: 优化 迭代实现 二.扩展欧几里德算法 基本算法:对于不完全为 0 的 ...
分类:
其他好文 时间:
2018-07-22 18:06:15
阅读次数:
254
题面 "传送门" 思路 这题目是真的难读......阅读理解题啊...... 但是理解了以后就发现,题目等价于: 给你一个区间,支持单点修改,以及查询一段区间的乘积的 欧拉函数 值,这个答案对19961993取模 这里是欧拉函数的原因显然,题目中的那个不相冲实际上就是扩展欧几里得里面的那个定理,要满 ...
分类:
其他好文 时间:
2018-07-21 22:36:04
阅读次数:
178
emmm...作为本蒟蒻的实际意义上的第一篇博客,当然要认真写写才不反正也没什么人看 T1 题意简述:求二元不定方程的正整数解组数。 T≤10000,-1,000,000≤a,b,c≤1,000,000 解题思路:扩展欧几里得即可,关于负数可以特判。 代码: T2 题意简述:有一棵点数为n的树,树边 ...
分类:
其他好文 时间:
2018-07-15 23:21:33
阅读次数:
155
#include #include #include #include #include #include #define ll long long using namespace std; ll n,p; void exgcd(ll a,ll b,ll &x,ll &y) { if(!b) { x... ...
分类:
其他好文 时间:
2018-07-08 18:09:45
阅读次数:
167
题目:http://poj.org/problem?id=2115 就是扩展欧几里得呗; 然而忘记除公约数... 代码如下: ...
分类:
其他好文 时间:
2018-07-04 19:31:55
阅读次数:
158
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1407 看到一定有解,而且小于10^6,所以可以枚举; 判断一个解是否可行,就两两判断野人 i , j 能否满足在寿命内不相遇; 也就是 T*pi + ci ≡ T*pj + cj (mod m ...
分类:
其他好文 时间:
2018-07-01 19:52:19
阅读次数:
199
exgcd(a,b,x,y) { if(b==0) x=1,y=0; else exgcd(a,a%b,y,x-(a/b)*y; } ax1+by1=c; ax2+by2=c; a(x1-x2)+b(y1-y2)=0; x=x1-x2; y=y1-y2; g=gcd(a,b); a=a0*g; b= ...
分类:
编程语言 时间:
2018-07-01 11:50:18
阅读次数:
139