Perhaps
写完这篇就可以去睡觉了qwq....
困困困困
1631: NOIP 2012 同余方程(mod)
题目描述
求关于x的同余方程ax ≡ 1 (mod b)的最小正整数解。
输入
输入只有一行,包含两个正整数a, b,用一个空格隔开。
输出
输出只有一行,包含一个正整数x0,即最小正整数解。输入数据保证一定有解。
样例输入
3 10
样例输出
7
提示
对于40%的数据,2 ≤b≤ 1,000;
对于60%的数据,2 ≤b≤ 50,000,000;
对于100%的数据,2 ≤a, b≤ 2,000,000,000。
感觉自己这道题好像写的挺对的
就不解释了吧
算了 不解释会被骂的 还是解释吧
(好像终于发现了初中数学竞赛的一点点好处)
把问题转化一下。它的实质是 ax+by=1
其实这个式子我也不知道自己是怎么推出来的,好像是找规律试出来的吧
总感觉跟费马小定理挺像
不写辽...(谁能告诉我上面的横线怎么去掉.....
下面这个emmmmm
#include<iostream>
#include<cstdio> using namespace std; long long x, y; void exgcd(long long a, long long b) { if(b == 0)
{ x = 1; y = 0;
return; } exgcd(b, a % b);
long long tx = x;
x = y; y = tx - a / b * y; } int main() { long long a, b; cin >> a >> b; exgcd(a, b); while(x < 0)
x += b; x %= b; printf("%lld\n", x); return 0; }
就这样吧。。。
(感觉自己一点也不认真....