
数论
文章平均质量分 54
Think_Idea
水滴石穿
展开
-
初等数论四大定理(威尔逊定理,欧拉定理,中国剩余定理,费马小定理)
1、威尔逊定理:在初等数论中,威尔逊定理给出了判定一个自然数是否为素数的充分必要条件。即:当且仅当p为素数时:( p -1 )! ≡ p-1 ( mod p ),但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大。2、欧拉定理:在数论中,欧拉定理,(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质,则: 3、费马小定理:费马小定理(Fermat T原创 2015-09-23 17:40:58 · 11572 阅读 · 0 评论 -
最少交换次数
给定一个序列,通过交换元素使序列变为有序,求最小交换次数?1、每次只能交换相邻的元素:逆序数 代码:略2、每次可以交换任意两个元素贪心+二分代码:(要求序列中没有重复的元素)#include #include #include #define MAXN 1000010using namespace std;int n,d[MAXN];int t[MAXN],r原创 2015-09-21 21:25:53 · 2423 阅读 · 0 评论 -
Lucas定理
Lucas定理是用来求 c(n,m) mod p,p为素数的值。原创 2015-09-20 23:34:56 · 279 阅读 · 0 评论 -
费马小定律
费马小定理(Fermat Theory)是数论中的一个重要定理,其内容为: 假如p是质数,且(a,p)=1,那么 a(p-1)≡1(mod p)。即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1。原创 2015-09-20 23:30:55 · 487 阅读 · 0 评论 -
hdu4549(费马小定律+矩阵快速幂)
题目链接:点击打开链接题目描述:M斐波那契数列F[n]是一种整数数列,它的定义如下:F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 )现在给出a, b, n,你能求出F[n]的值吗? Input输入包含多组测试数据;每组数据占一行,包含3个整数a, b, n( 0原创 2015-08-24 17:07:09 · 393 阅读 · 0 评论 -
线性同余方程组模板
void exgcd(int a,int b,int &d, int &x,int &y){///扩展欧几里德算法 if(!b){x=1;y=0;d=a;} else{exgcd(b,a%b,d,y,x); y-=x*(a/b);}}int n,m;///m代表方程组的数量int a[11],b[11];///x%a[i]=b[i]///求解同余方程组bool Chi_原创 2015-08-23 20:52:01 · 922 阅读 · 0 评论 -
uva10820(欧拉函数)
题目链接:点击打开链接题意描述:输入两个整数(1=f(x*k,y*k)(其中k为任意正整数),所以只需要保存f(x,y),其他的就不用保存了。输入(n(2,2)可以由(1,1)得到,所以不需要记录解题思路:分析题意我们可以发现,只要只需要保存所有互素(x,y)元素即可,由此我们可以借助欧拉函数,在O(nloglogn)的时间内解决问题#include #include原创 2015-08-10 13:02:55 · 570 阅读 · 0 评论 -
欧拉函数
φ函数(欧拉函数):是小于或等于n的正整数中与n互质(互质:最大公约数为1,所以n=1是特殊情况)的数的数目通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数(小于等于1)就是1本身)。 (注意:每种质因数只一个。比如12=2*2*3那么φ(12)=原创 2015-08-10 11:49:59 · 417 阅读 · 0 评论 -
uva1635 Irrelevant Elements(唯一分解定理)
题目链接:点击打开链接题意:给定n个数a1,a2····an,依次求出相邻两个数值和,将得到一个新数列,重复上述操作,最后结果将变为一个数,问这个数除以m的余数与那些数无关?例如n=3,m=2时,第一次得到a1+a2,a2+a3,在求和得到a1+2*a2+a3,它除以2的余数和a2无关。1=解题思路:1、首先我们可以发现对于给定的n其实每项的系数就是C(n-1,i-1),所以我原创 2015-08-10 11:06:00 · 2208 阅读 · 3 评论 -
uva10791 Minimum Sum LCM(唯一分解定理)
题意描述:输入整数(n>=1&&n解题思路:唯一分解定理我们可以想象假如使整数和最小的且最小公倍数为n的数由x1,x2···,xm这些数组成,如果其中任意两个数有相同的约数,那么我们可以将其中一个除去约数,将使整体的和更小。因此可以肯定x1,x2···xm相互之间没有约数。将n转换为质数相乘的形式,可以发现当其中的每一个项作为一个x1,x2···xm中的一个数时能使整体和最小。因此原创 2015-08-09 17:20:47 · 1005 阅读 · 0 评论 -
uva10375 Choose and Divide(唯一分解定理)
题意:已知C(m,n)=m! / (n!*(m-n!)),输入整数p,q,r,s(p>=q,r>=s,p,q,r,s解题思路:初步分析,本题时间上基本上没有太大的限制,可以暴力求解C(m,n);但是我们会发现C(10000,5000),早已超出了计算机整数的表示范围,不过输出保证了不超过10^8,所以本题我们使用唯一分解定理进行求解,通过将其分解为指数幂次相乘的形式即可原创 2015-08-09 15:58:14 · 1656 阅读 · 0 评论 -
hud2769 Disgruntled Judge(扩展欧几里德算法)
题目链接:点击打开链接题目描述:给出三个数x1,a,b,然后根据递推公式xi=(axi-1+b)mod10001,计算出了一个长度为2T的数列。然后把T和x1,x3,x5··· x2T-1写到输入文件,x2,x4,x4,···x2T作为输出文件输入保证T解题思路:如果知道a,我们就可以通过x1,x3,计算出b。有了x1,a,b我们就可以在O(T)的时间内求的整个序列。如果在原创 2015-08-09 13:24:15 · 829 阅读 · 0 评论 -
uva11582 Colossal Fibonacci Numbers(分治法)
题意:输入两个非负整数a、b和正整数n(a,b>=0&&a,b=1&&n解题思路:设F(i)=f(i) mod n。不难发现当(F(i),F(i+1))重复出现时,整个序列就开始重复。所以我们需要找到对于不同的n重复周期,因为余数有n中,所以最多n^2项就会出现重复(其实我们也可以通过打表观察,在n原创 2015-08-09 13:11:28 · 596 阅读 · 0 评论 -
同余与模运算
1、基本运算:///溢出情况,b为正整数加法:(a+b) mod n = ((a mod n)+(b mod n))mod n减法:(a-b) mod n = ((a mod n)-(b mod n)+n) mod n乘法:ab mod n = (a mod n)(b mod n) mod n 2、大整数取模: char st[1000]; int m;原创 2015-08-08 17:00:42 · 1878 阅读 · 0 评论 -
Eratosthenes筛法
定义:筛法是一种简单检定素数的算法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛法(sieve of Eratosthenes)。代码:时间复杂度:O(nlogn) memset(vis,0,sizeof(vis)); for(int i=2;i<=n;i++) for(int j=i*2;j原创 2015-08-08 10:38:53 · 4608 阅读 · 1 评论 -
欧几里德算法
定义:欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。代码:int gcd(int a,int b){ return b==0?a:g(b,a%b);}用途:计算两个数的最大公约gcd,两个数的最小公倍数lcm 由lcm*gcd=a*b的到a/gcd*b即可原创 2015-08-07 21:43:34 · 605 阅读 · 0 评论 -
唯一分解定理
定义:任何一个大于1的自然数N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1a1P2a2P3a3......Pnan,这里P1P2P3......Pn均为质数,其中指数ai是正整数。这样的分解称为N 的标准分解式应用:原创 2015-08-07 21:32:30 · 3014 阅读 · 0 评论