dalao博客,至少很好看。。 因为本人数论实在渣渣,但是考试确是得考的,只好尽早学,尽早掌握。 最大公因数 普通gcd 1 inline int gcd(int x,int y) 2 { 3 return y == 0 ? x : gcd(y, x % y) 4 } 二进制优化gcd 1 inli ...
分类:
编程语言 时间:
2017-05-09 21:45:27
阅读次数:
180
最近做了一些拓展欧几里得的题目呢,嘛,从一开始的不会到现在有点感觉,总之把我的经验拿出来和大家分享一下吧。
普通的欧几里得是用于解决求两个数a,b的gcd的,但是我们知道,gcd是线性组合 { ax+by | x,y∈Z }里的最小正元素(什么?不知道怎么来的?好吧。。。算法导论里数论算法那一章有证明),假若我们能够把这个x和y找出来,那么可以用来解决很多问题。
...
分类:
其他好文 时间:
2016-08-22 15:01:30
阅读次数:
301
1.基础 【除法定理】:对于任何整数a和正整数n,存在唯一整数q和r,满足0<=r<n且a=qn+r WARN:C++中貌似不完全遵守这个东西,n认为是|n|,并且a为负时r可以为负 【】 2.最大公约数 几条性质:gcd(a,b)=gcd(|a|,|b|) gcd(a,0)=|a| gcd(a,k ...
分类:
编程语言 时间:
2016-08-13 01:17:27
阅读次数:
262
基本算法(pascal) 1.数论算法 求两数的最大公约数 function gcd(a,b:integer):integer; begin if b=0 then gcd:=a else gcd:=gcd (b,a mod B); end; 求两数的最小公倍数 function lcm(a,b:i ...
分类:
编程语言 时间:
2016-07-06 23:24:07
阅读次数:
281
第四章(含小学奥数)计97题,已完成8题 4.1 算法之排序和算法性能 4.2 算法之数论 4.3 算法之图论 4.4 算法之分治 4.5 算法之动态规划 4.6算法之贪心 4.7算法之搜索 小学奥数 ...
分类:
其他好文 时间:
2016-05-25 12:47:10
阅读次数:
373
/**********/ #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; /***...
分类:
编程语言 时间:
2016-03-17 01:52:45
阅读次数:
342
http://www.2cto.com/kf/201109/105758.html算法大全(C,C++)一、数论算法1.求两数的最大公约数function gcd(a,b:integer):integer;beginif b=0 then gcd:=aelse gcd:=gcd (b,a mod b...
分类:
编程语言 时间:
2015-11-11 23:59:00
阅读次数:
481
1.求两数的最大公约数function gcd(a,b:integer):integer; begin if b=0 then gcd:=a else gcd:=gcd (b,a mod b); end ;2.求两数的最小公倍数function lcm(a,b:intege...
分类:
编程语言 时间:
2015-11-06 11:12:48
阅读次数:
233
/*给定一个正整数N,求出[2,N]中的所有素数*/
#define maxn 1000000
boool vis[maxn];
void getprime(int n, int &tot, int ans[]) //筛法将合数筛掉,留下的则是素数 ,用于快速判断一个区间内的所有素数
{
fot = 0; //记录素数的个数
for (int i = 2; i<= n; i++)...
分类:
其他好文 时间:
2015-08-03 09:01:48
阅读次数:
186
/*a*b (mod m) 的实现过程*/
/*当a,b很大的时候mod m就会产生溢出, 故运用乘法原理转换为加法求解*/
LL multi(LL a, LL b, LL m)
{
LL exp = a %m, res = 0;
while (b)
{
if (b & 1) //b的最低位是否为1
{
res = res + exp;
if (res >= m)...
分类:
其他好文 时间:
2015-08-03 08:59:09
阅读次数:
133