由于自己比较菜,
还不希望考的太差,>-< 抽出时间狠狠的练了
预计到 CSP 复赛之前都会做。
排除一些原来已经刷过去了的题,写一些简单的题解。
P1082 [NOIP2012 提高组] 同余方程
有了 \(a x \equiv 1 \pmod {b}\) 这个东西,
一眼就能看出来数论题。
考虑拓展欧几里得求一下逆元。
由于在最后得结果时有可能会得到负数,因此考虑输出的时候用一下 (x+y)%y
这个语句来处理一下非负。
但是板子写的时候别写错了,
gcd(int a,int b,int &x,int &y)
这个地方,要注意下。
核心码
点击查看代码
int gcd(int a, int b,int &x,int &y) {
if (b == 0) {
x = 1, y = 0;
return a;
}
int ans = gcd(b, a % b, x, y);
int temp = x;
x = y;
y = temp - a / b * y;
return ans;
}