题目可以转化成求关于t的同余方程的最小非负数解:x+m*t≡y+n*t (mod L)该方程又可以转化成:k*L+(n-m)*t=x-y利用扩展欧几里得可以解决这个问题:eg:对于方程ax+by=c设tm=gcd(a,b)若c%tm!=0,则该方程无整数解。否则,列出方程:a*x0+b*y0=tm易...
分类:
其他好文 时间:
2014-11-01 19:10:39
阅读次数:
206
gcd(x,y)(1 gcd(x/k,y/k)=1,k是x的质因数 的个数 Σφ(x/k) (1 2 using namespace std; 3 typedef long long ll; 4 int phi[10000001],n; 5 bool unPrime[10000001]; 6 ll ...
分类:
其他好文 时间:
2014-11-01 18:59:33
阅读次数:
164
Uva 10325 The Lottery ( 容斥原理 )#include #include typedef long long LL;LL x[20],n, m;LL gcd( LL a, LL b ){ return ( b == 0 ) ? a : gcd( b, a % b );}L...
分类:
其他好文 时间:
2014-11-01 17:27:35
阅读次数:
153
∵∑gcd(i, N)(1 gcd(x/ki,N/ki)=1 (1 2 #include 3 using namespace std; 4 typedef long long ll; 5 ll n,ans; 6 int phi(ll x) 7 { 8 ll res=x; 9 for(...
分类:
其他好文 时间:
2014-11-01 16:15:10
阅读次数:
186
#include
#include
#include
#include
using namespace std;
typedef long long LL;
int gcd(int x,int y){
return y ? gcd(y,x%y) : x;
}
int main()
{
int n,m;
LL ans;
while(scanf("%d%d",&m,...
分类:
其他好文 时间:
2014-11-01 14:52:47
阅读次数:
188
对于 ax≡b( mod n ) 转化为 ax - ny = b , 当 d = gcd( a, n ) 不是 d 的约数的时候不存在解,为何不存在解呢?设 a = k1*d , n = k2*d .那么式子可转化为 : d * (k1*x - k2*y) = b , 若 b % d != 0 .....
分类:
其他好文 时间:
2014-11-01 00:56:12
阅读次数:
254
辗转相除法:求gcd(a,b)扩展欧几里得:解关于x和y的方程:a*x+b*y=gcd(a,b) 1 int gcd(int a,int b){ 2 if (b==0) return a; 3 return gcd(b,a%b); 4 } ...
分类:
其他好文 时间:
2014-10-31 21:52:11
阅读次数:
147
2818: Gcd
题目:
给定整数N,求1
数对(x,y)有多少对. 1
算法:
求解 g = Gcd(x,y)为素数,转换问题成x/g,y/g互质。所以,只要求出[1,N/pi]内互质的对数(pi为1....N之间的素数)。枚举pi就可以了。而这里就可以用到线性的欧拉求解,普通欧拉为O(nlognlogn)。
/*
线性素数加欧拉筛法O(N)
题目:...
分类:
其他好文 时间:
2014-10-31 20:45:54
阅读次数:
184
求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。
最大公约数的求法中最过著名的莫过于欧几里得辗展相除法,它有两种形式(递归与非递归,其实是一样的,任何递归都可以写成非递归)...
分类:
编程语言 时间:
2014-10-31 15:49:21
阅读次数:
373
欧几里得算法基于这样一个 GCD 递归定理:$gcd(a, b) = gcd(b, a\bmod{b}) $证明如下:假设 $a > b$, $a = kb + r(0 0$ 时, 假设我们已经求得了方程 $bx + (a\bmod{b})y = gcd(b, a\bmod{b})$ 的一组解 $....
分类:
编程语言 时间:
2014-10-31 15:22:41
阅读次数:
279