
数论
南宫嘉俊
学生
展开
-
裴蜀定理
在数论中,裴蜀定理是一个关于最大公约数(或最大公约式)的定理。裴蜀定理得名于法国数学家艾蒂安·裴蜀,说明了对任何整数a、b和它们的最大公约数d,关于未知数x和y的线性丢番图方程(称为裴蜀等式):若a,b是整数,且(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。 它的一个重要推论是:a,b互质的充要条件是存在整数x,y使a原创 2015-08-19 08:21:24 · 603 阅读 · 0 评论 -
大素数判断和素因子分解(miller-rabin,Pollard_rho算法)
#include#include#include#include#include#includeusing namespace std;//****************************************************************// Miller_Rabin 算法进行素数测试//速度快,而且可以判断 <2^63的数//********原创 2015-09-15 21:57:28 · 377 阅读 · 0 评论 -
HDU 2662 Coin
纯数学题/*设所求为n,那么n+a、n+b可以用a、b线性表出,而n不可。所以 n+a=x1*a+y1*b,n+b=x2*a+y2*b所以 n=(x1-1)*a+y1*b n=x2*a+(y2-1)*b因为n不能被线性表出,所以x1=0,y2=0所以 n+a=y1*b,n+b=x2*a所以 n+a=y1*b,n+a=(x2+1)*a-b所以 (x2+1)*a-b是b的倍数因为a、原创 2015-09-17 19:09:01 · 436 阅读 · 0 评论 -
HDU 5495 LCS(置换群)
//离散数学数学中的置换群应用,答案就是找出所有循环的个数(循环长度必须大于1),最后用n-sum(sum为循环个数),每个循环必有一个与其他不同,每个循环牺牲一个元素。就是LCS。#include#include#includeusing namespace std;const int maxm=1e5+20;int a[maxm];int b[maxm];int p1[maxm原创 2015-10-07 15:42:47 · 355 阅读 · 0 评论 -
POJ 3270 Cow Sorting(置换群问题)
//离散数学中的置换群问题,找循环节个数。两种情况,1:找循环节中最小值,s-Min+(len-1)*Min。2:用数列中的最小值s+Min+(len+1)*MIN。取最小和#include#include#includeusing namespace std;const int maxm=1e5+10;const int inf=1<<29;int vis[maxm];struc原创 2015-10-08 11:08:10 · 386 阅读 · 0 评论 -
HDU 2136 Largest prime factor
素数筛选法#include#include#includeusing namespace std;const int maxm=1e6+10;int f[maxm];void Init(){ int cnt=1; memset(f,0,sizeof(f)); for(int i=2;i<=maxm;i++) { if(!f[i])原创 2015-10-11 20:26:48 · 314 阅读 · 0 评论 -
HDU 5428 The Factor
对于每一个数字,它有用的部分其实只有它的所有质因子(包括相等的)。求出所有数的所有质因子中最小的两个,相乘就是答案。如果所有数字的质因子个数不到两个,那么就是无解。时间复杂度O(n*sqrt(a))O(n∗sqrt(a))#include#include#includeusing namespace std;int vis[100000];int prime[100000];_原创 2015-09-23 20:16:01 · 316 阅读 · 0 评论 -
费马小定理
(a^b)%p=(a^(b%(p-1)))%p原创 2015-11-21 22:53:54 · 363 阅读 · 0 评论