通过这道题略懂了扩展gcd和逆元
形如ax=1(mod b)的同余方程中x的最小正整数解叫做a模b的逆元
逆元定义大概就是一个运算取消
扩展gcd可以求解形如ax+by=gcd(a,b)的二元方程
题目中的ax=1(mod b)即可化作ax+by=1,原题中的保证有解意思就是ab互质
代码:
#includeusing namespace std;#define ll long long//求ax+by=gcd(a,b)的解void exgcd(int a,int b,int &x,int &y){ if(b==0){x=1;y=0;return;} exgcd(b,a%b,x,y); int t=x;x=y;y=t-a/b*y;}int main(){ ll a,b; scanf("%lld%lld",&a,&b); int x,y; exgcd(a,b,x,y); cout< <<" "< <
关于逆元的知识还很多。。数学方面的知识基本还是空白。。
最大连续子区间和我还真忘了怎么敲。。。