zoukankan      html  css  js  c++  java
  • 二元线性不定方程和模线性方程

    二元线性不定方程:

    有方程ax+by=c;首先必须满足d=gcd(a,b)|c;否则无解。

    所以我们可以用扩欧求出一组关于d特解:ax0'+by0'=d;

    所以有特解x0=x0'/d*c,y0=y0'/d*c;

    然后我们可以知道a/d(x1-x2)=b/d(y2-y1),b/d|(x1-x2),a/d|(y2-y1);

    所以有通解:(x0+k*b/d,y0-k*a/d)。

    模线性方程:

    ax=b(mod c);变成ax+cy=b;同上可以求出特解和通解;

     1 #define ll long long 
     2 ll e_gcd(ll a,ll b,ll &x,ll &y){
     3     if (b==0){
     4         x=1; y=0; return a;
     5     }
     6     int d=e_gcd(b,a%b,x,y);
     7     int t=x; x=y;
     8     y=t-(a/b)*y;
     9     return d;
    10 }
    11 void solve(ll a,ll b,ll c){
    12     ll x_,y_,d=e_gcd(a,c,x_,y_);
    13     if (b%d==0){
    14         printf("%lld",((x_*b/d)%c+c)%c);
    15     } else printf("Impossible");            
    16 }
    View Code
  • 相关阅读:
    厂商前缀
    文本阴影和边框阴影
    2D转换
    overflow属性
    margin属性
    CSS圆角边框
    浮动定位
    文档流定位
    position属性
    选择器二
  • 原文地址:https://www.cnblogs.com/SXia/p/6790128.html
Copyright © 2011-2022 走看看