• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            ArcTan

            dfs
            隨筆 - 16, 文章 - 117, 評論 - 6, 引用 - 0
            數據加載中……

            中國剩余定理

            設m1,m2,...,mk是兩兩互素的正整數,對于任意的正整數a1,a2,a3,..,ak 同余方程組:
             x≡a1 (mod m1)
             x≡a2 (mod m2)
             ...
             x≡ak (mod mk)
             必有解, 且解可寫為
             x≡M1N1a1+MkNkak+....MkNkak (mod m)
             其中 m=m1m2m3....mk
             Mi=m/mi,(1<=i<=k)
             Nj滿足MjNj≡1(mod mj),1<=j<=k
            即:
                  Ni,Mi是對模mi的互為逆元。
            http://www.cnblogs.com/walker01/archive/2010/01/23/1654880.html
            這篇寫得不錯哇。
                 
            中國剩余定理O(nlogn),還算高效率的。
            #include<stdio.h>
            #include
            <string.h>
            #include
            <math.h>
            int a[25],m[25],M[25],N[25];
            int gcd_ext(int a,int b,int *x,int *y)
            {
                
            int d,tmp;
                
            if (b==0)
                {
                    
            *x=1;*y=0;
                    
            return a;
                }
                d
            =gcd_ext(b,a%b,x,y);
                tmp
            =*x;*x=*y;*y=tmp-(a/b)**y;
                
            return d;
            }
            long long ChReTheorim(int n)
            {
                
            int i,x,y;
                
            long long ans,mul;
                mul
            =1;
                
            for (i=1;i<=n ;i++ )
                    mul
            *=m[i];
                ans
            =0;
                
            for (i=1;i<=n ;i++ )
                {
                    M[i]
            =mul/m[i];
                    gcd_ext(M[i],m[i],
            &x,&y);
                    N[i]
            =(x+m[i])%m[i];
                    ans
            =(ans+a[i]*M[i]*N[i]) % mul;
                }
                
            return ans;
            }

            int main()
            {
                
            int i,n;
                
            long long ans;
                
            while (scanf("%d",&n)==1)
                {
                    mul
            =1;
                    
            for (i=1;i<=n ;i++ )
                        scanf(
            "%d%d",&a[i],&m[i]);
                    ans
            =ChReTheorim(n);
                    printf(
            "%lld\n",ans);
                }
                
            return 0;
            }
            尼瑪,看算法上的乘法逆元給看成加法逆元了。我還以為我找到O(n)的算法呢。氣死:
               a=a1(mod n1)
               a=a2(mod n2)

               a=(a1*n2*N2+a2*n1*N1) % (n1*n2)
            其中
               N1是n1模n2的逆元,N2是n2模n1的逆元。
            如此反復迭代,可求解。

            long long TongYu(int a1,int n1,int a2,int n2)
            {
                
            int N1,N2,x,y,ans;
                gcd_ext(n1,n2,
            &x,&y);
                N1
            =(n2+x) % n2;
                gcd_ext(n2,n1,
            &x,&y);
                N2
            =(n1+x) % n1;
                printf(
            "%d %d\n",N1,N2);
                ans
            =(a1*n2*N2+a2*n1*N1) % (n1*n2);
                
            return ans;
            }
            哦,



            posted on 2012-04-30 16:34 wangs 閱讀(286) 評論(0)  編輯 收藏 引用 所屬分類: ACM-數學

            国内精品伊人久久久久妇| 国产精品女同一区二区久久| 激情综合色综合久久综合| 日本福利片国产午夜久久| 久久人人爽人人爽人人片av高请| 精品久久久久成人码免费动漫 | 一本伊大人香蕉久久网手机| 久久久综合九色合综国产| 久久精品国产91久久综合麻豆自制 | 国产精品乱码久久久久久软件| 久久精品亚洲福利| 亚洲?V乱码久久精品蜜桃| 亚洲国产成人久久精品99| 久久无码AV中文出轨人妻| 久久久久亚洲av综合波多野结衣 | 亚洲天堂久久精品| 国产精品免费看久久久香蕉| 污污内射久久一区二区欧美日韩| 日韩久久久久中文字幕人妻| 久久国语露脸国产精品电影| 亚洲国产精品无码久久一线| 99久久精品影院老鸭窝| 久久精品一区二区三区中文字幕| 亚洲国产综合久久天堂 | 久久久综合九色合综国产| 欧美粉嫩小泬久久久久久久| 漂亮人妻被中出中文字幕久久| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 要久久爱在线免费观看| 日韩AV无码久久一区二区 | 97精品伊人久久大香线蕉| 久久99精品久久久久久hb无码 | 亚洲国产精品一区二区久久hs| 久久无码av三级| 久久久久亚洲av成人网人人软件| 久久久一本精品99久久精品88| 成人a毛片久久免费播放| 7777精品伊人久久久大香线蕉 | 久久久久久免费一区二区三区| 国内精品伊人久久久影院| A级毛片无码久久精品免费|