首页 > TAG信息列表 > P1082

洛谷 P1082 [NOIP2012 提高组] 同余方程

洛谷 P1082 [NOIP2012 提高组] 同余方程 刷一刷数论的题,这才知道有扩展欧几里得算法这个东西(扩欧)。虽然还不知道欧几里得算法是什么,就一步步来看。 欧几里得算法,在《整除与剩余》板块找到了。 求两个数a,b的最大公约数。(哦豁,原来欧几里得算法就是求最大公约数的算法,幻想的太高

洛谷 P1082 [NOIP2012 提高组] 同余方程

题意 求解\(ax \equiv 1 \mod b\) 套路变形为\(ax-by=1\) 题目保证有解(即为a、b互质),使用exgcd求解 #include<bits/stdc++.h> #define int long long using namespace std; int a,b; int exgcd(int A,int B,int &x,int &y){ if(B==0) return x=1,y=0,A; int g=exgcd(B,A%B,x

luogu P1082 同余方程

luogu P1082 同余方程 题目描述 求关于方程\(ax \equiv 1 (\mod b)\)的最小整数解 输入 含两个正整数 \(a,b\)用一个空格隔开。 输出 一个正整数\(x\),即最小正整数解。输入数据保证一定有解。 样例 $in 3 10 \(out\) 7 答题过程: \[ ax = yb + 1 \\ ax - by = 1 \\ \because gcd(a,

P1082 同余方程

题目地址 赤裸裸的一道数论题啊啊啊啊啊啊,学过同余基本就莫得问题了 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 long long x, y;//目前方程真正的解 5 6 void exgcd(long long a, long long b) 7 { 8 //当前目的:求解 ax + by = gcd(a, b) 这么一个方程 9 10

P1082 同余方程(扩欧模板)

https://www.luogu.org/problem/P1082 #include <iostream>#include <cstdio>#include <queue>#include <algorithm>#include <cmath>#include <cstring>#define inf 2147483647#define N 1000010#define p(a) putchar(a)#define For(i

[Luogu P1082]同余方程

题目链接 这道题求关于x的同余方程ax≡1(mod b)的最小正整数解。换而言之方程可以转换为ax+by=1,此时有y为负数。此时当且仅当gcd(a,b)|1时,方程有整数解。 于是乎这道题就变成了ax+by=gcd(a,b)即扩展欧几里得问题。如何解决这个问题呢? 由gcd的基本性质可以得出:gcd(b,a%b)=gcd(a,b),这个值