题目链接

定理:对于方程\(ax+by=c\),等价于\(a*x=c(mod b)\),有整数解的充分必要条件是c是gcd(a,b)的整数倍。

      ——信息学奥赛之数学一本通

避免侵权。哈哈。

两只青蛙跳到一格才行,所以说

\(x+mt=y+nt(mod l) \)

\((x-y)+(m-n)t=0(mod l)\)

\((m-n)t+ls=(y-x)  s属于整数集\)

 令a=n-m,b=l,c=gcd(a,b),d=x-y

则有\( at+bs=d\)

扩展欧几里得求解。

设c=gcd(a,b),若d/c 不是整数则无解。

最小解=(c*(d/c)%b+b)%b

这里是扩展欧几里得的代码。

long long exgcd(long long a,long long b,long long &x,long long &y){
    if(b==0){
        y=0;x=1;
        return a;
    }
    long long ret=exgcd(b,a%b,x,y);
    long long tmp=x;x=y;y=tmp-a/b*y;
    return ret;
}
扩展欧几里得

相关文章:

  • 2021-06-09
  • 2021-07-09
  • 2021-12-18
  • 2022-01-01
  • 2022-12-23
  • 2022-01-01
猜你喜欢
  • 2022-01-01
  • 2022-12-23
  • 2022-01-01
  • 2022-12-23
  • 2022-01-01
  • 2022-01-01
相关资源
相似解决方案