The Balance POJ 2142

#include #include #include #include using namespace std; typedef long long LL; const int INF = 100000000; LL fabs(LL a) { if( a < 0 ) return (-a); else return a; } ...
阅读(383) 评论(0)

poj 2142 The Balance

本题是求ax + by = c 的一组解,要求|x| + |y| 尽可能小,若存在相等,则使a * |x| + b * |y| 尽可能小;如果x b0, |x|  + |y| = |x0 + (b/d)*t| + |y0 - (a/d) * t|,因此最小值在|y0 - (a/d) * t|附近。 #include #include #include #include #include...
阅读(456) 评论(0)

hdu1788 Chinese remainder theorem again

求最小公倍数;Lcm 的数据类型是LL, 忽略了,WA了一次! 本题要求的是N%Mi = Mi - a; 即:N%Mi + a = Mi;则有:N + a ≡ 0 ( mod Mi); 定理:若有:a ≡ b(mod mi),当且仅当:a ≡ b (mod [m1 * m2 * ···········mn]); #include #include using namespace std...
阅读(489) 评论(0)

poj 1006 Biorhythms

#include #include #include using namespace std; int m[4], a[4]; int M; void Ex_Gcd(int a, int b, int &d, int &x, int &y) { if(b == 0) { x = 1, y = 0; d = a; retur...
阅读(346) 评论(0)

poj 1995 Raising Modulo Numbers

#include #include #include using namespace std; typedef long long LL; LL Quick_Mod(LL a, LL b, LL m) { LL ans = 1; while(b) { if(b & 1) { ans = ans * a % ...
阅读(380) 评论(0)

POJ 3233

矩阵的快速幂模m #include #include #include using namespace std; const int MAXN = 110; struct Matrax { int m[MAXN][MAXN]; }; Matrax a, per; int n, m; void Inite() { int i, j; for(i = 0; i < n; ++i...
阅读(337) 评论(0)

hdu 3579 Hello Kiki

题目:点击打开题目 #include #include #include using namespace std; typedef long long LL; const int MAXN = 10; LL Gcd(LL a, LL b) { return b == 0 ? a : Gcd(b, a%b); } void Ex_Gcd(LL a, LL b, LL &d, ...
阅读(502) 评论(0)

hdu 1573 X问题

#include #include #include using namespace std; const int MAXN = 15; typedef long long LL; LL Gcd(LL a, LL b) { if(b == 0) return a; else return Gcd(b, a%b); } void Ex_...
阅读(536) 评论(0)

poj 2115 C Looooops

#include #include #include using namespace std; typedef long long LL; void Ex_Gcd(LL a, LL b, LL &d, LL &x, LL &y) { if(b == 0) { x = 1; y = 0; d = a; ret...
阅读(475) 评论(0)

poj 2891 Strange Way to Express Integers

#include #include #include using namespace std; void Ex_Gcd(long long a, long long b, long long &d, long long &x, long long &y) { if(b == 0) { x = 1; y = 0; d = a;...
阅读(483) 评论(0)

同余问题怎么求解最小正整数解

定理一:若gcd(a, b) = 1,则方程ax ≡ c (mod b)在[0, b-1]上有唯一解。 证明:     存在性:存在整数k和l使a*k + b*l = gcd(a, b) = 1,即我们可以求出ax ≡ 1 (mod b)的解x0。当然,两边乘以c有a(cx0) ≡ c (mod b),所以有x = cx0就是ax ≡ c (mod b)的解。由于加上或减去若干倍b都是该方程的...
阅读(700) 评论(0)

nefu 84

#include using namespace std; long long Extended_Gcd(long long a, long long b, long long &x, long long &y) { if(b == 0) { x = 1; y = 0; return a; } long long...
阅读(408) 评论(0)

hdu 2035 人见人爱A^B

设:a%m = r1, b %  m = r2, 则:(a*b) % m = (a%m)*(b%m)%m; 令: a = k1 *m + r1, b = k2 * m + r2; 则:a*b = ( k1*m+r1 ) * (k2*m + r2) = (k1*k2*m^2 + k1*m*r2 + k2*m*r1 + r1*r2) =>  (a*b)%m = (k1*k2*m^2 + k1*m...
阅读(1052) 评论(0)

hdu 1021 Fibonacci Again

设a%m = r1, b%m = r2,则:(a+b)%m = (r1 + r2)%m = (a%m + b%m)%m; 令:a = k1 * m + r1; b = k2 * m + r2; 则:(a+b)%m = (k1*m + r1 + k2 * m + r2)%m = ((k1 + k2) * m + r1 + r2)%m = (r1 + r2)%m = (a%m  + b%m)%m ...
阅读(505) 评论(0)

poj 2769

同余问题: #include #include #include using namespace std; const int MAXN = 310; int main() { bool p[100010]; int arr[MAXN]; int T; cin>>T; while(T--) { int n; ...
阅读(468) 评论(0)
    个人资料
    • 访问:280286次
    • 积分:7304
    • 等级:
    • 排名:第3352名
    • 原创:471篇
    • 转载:19篇
    • 译文:0篇
    • 评论:18条