听说这是数论中比较重要的部分了,一点点的总结吧。。一.线性同余方程与不定方程:单个一元线性方程求解方法:扩展欧几里得 exgcd模板:long long exgcd(long long a,long long b,long long &x,long long &y){ if(!b) { ...
分类:
其他好文 时间:
2014-09-22 20:09:43
阅读次数:
166
水。模拟即可。使用EXGCD求逆元#include #include #include #include #define LL __int64using namespace std;LL p,q,e,n,f,d;void exgcd(LL a,LL b,LL &x,LL &y){ if(b==0){...
分类:
其他好文 时间:
2014-09-17 21:52:32
阅读次数:
379
直接使用中国剩余定理#include #include #include using namespace std;int r=3;int m[4]={0,23,28,33};int a[4]={0};void exgcd(int a,int b,int &d,int &x,int &y){ if(b...
分类:
其他好文 时间:
2014-09-01 12:04:12
阅读次数:
147
特判r1=0时的情况,因为0是不能模的。#include #include #include #include using namespace std;const int MaxM=11;int a[MaxM],b[MaxM];void exgcd(int a,int b,int &d,int &x...
分类:
其他好文 时间:
2014-08-29 21:22:08
阅读次数:
239
#include #include #include #include using namespace std;const int MaxM=11;int a[MaxM],b[MaxM];void exgcd(int a,int b,int &d,int &x,int &y){ if(b==0){ ...
分类:
其他好文 时间:
2014-08-29 21:16:08
阅读次数:
227
线性同余方程组,模板了。但要注意读完数据才跳出循环啊#include #include #include #include using namespace std;void exgcd(__int64 a,__int64 b,__int64 &d,__int64 &xx,__int64 &yy){ ...
分类:
其他好文 时间:
2014-08-29 17:37:38
阅读次数:
162
胡乱写一下,竟然是一次同余方程的内容。设a=n-m; b=L; d=x-y; 得ax+by=d然后,根定理,方程有解必须gcd(a,b)|d。确定有解后,两边除以gcd(a,b); 此时gcd(a',b')=1;使用EXGCD求出为1的解后再乘上d/gcd(a,b)。但要求最小解,就尽可能的把ax的...
分类:
其他好文 时间:
2014-08-27 16:05:17
阅读次数:
163
扩展欧几里得
#include
int exgcd(int a, int b, int &x, int &y)
{
int d,tmp;
if (b==0)
{
x = 1;
y = 0;
return a;
}
d = exgcd(b,a%b,x,y);
tmp = x;
x = y;
y = tmp - a/b * y;
return ...
分类:
其他好文 时间:
2014-08-12 09:04:23
阅读次数:
216
根据题意可构造出方程组,方程组的每个方程格式均为:C1*x1 + C2*x2 + ...... + C9*x9 = sum + 4*ki;
高斯消元构造上三角矩阵,以最后一个一行为例:
C*x9 = sum + 4*k,exgcd求出符合范围的x9,其他方程在代入已知的变量后格式亦如此。
第一发Gauss,蛮激动的。
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-08-09 13:31:36
阅读次数:
273
1.求gcd,算法为欧几里德(辗转相除法)2.解一元二次方程,算法为扩展欧几里德3.求素数,算法为埃氏筛法4.快速进行幂运算,算法快速幂(反复平方)5.解线性同余方程,求逆元(基于exgcd)6.其它用来优化模运算的定理,欧拉定理(费马小定理),相应的函数欧拉函数
分类:
其他好文 时间:
2014-08-07 12:49:39
阅读次数:
239