• <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, 評(píng)論 - 6, 引用 - 0
            數(shù)據(jù)加載中……

            poj 1061(線(xiàn)性同余)--青蛙的約會(huì)

            http://poj.org/problem?id=1061

            剛剛學(xué)了點(diǎn)數(shù)論,也好幾天沒(méi)有寫(xiě)代碼了,生疏了不少,總是有錯(cuò)誤,編譯個(gè)程序怎么都那么糾結(jié)啊,看來(lái)水平實(shí)在是差啊!!
            線(xiàn)性同余,方程還是很好就構(gòu)造出來(lái)了,extended_euclid,中國(guó)剩余定理,可是后面卻不指導(dǎo)怎么求最小的整數(shù)了:
            看了看大牛的題解,原來(lái)這樣啊,自己數(shù)論還得多學(xué)學(xué)才行,多想想?。?br />

            分析:設(shè)青蛙跳了k次,那么就有(x+mk)-(y+nk)=p*L.

            即x-y+(m-n)k=p*L,即(m-n)*k≡(y-x) (mod L).

            這個(gè)線(xiàn)性同余方程有解當(dāng)且僅當(dāng)gcd(m-n,L)|(y-x).

            令a=m-n,b=L,c=y-x.用擴(kuò)展歐幾里得解方程ax+by=c.

            可以求出原方程的一個(gè)解.如何求最小正整數(shù)解呢?

            假設(shè)我們已經(jīng)得到一個(gè)x0,令d=gcd(m-n,L),

            那么所有解可以表示為x=x0+k*L/d.

            設(shè)L'=L/d.

            Xmin=(x0 mod L'+L') mod L'.


            WA兩次,0Ms,囧,還有一次編譯錯(cuò)誤?。?!

            #include<stdio.h>
            #include
            <string.h>
            #include
            <math.h>
            long long  c,d;
            long long gcd_ext(long long a,long long b)
            {
                
            long long gcd,t;
                
            if (!b)
                {
                    c
            =1;d=0;
                    
            return a;
                }
                gcd
            =gcd_ext(b,a%b);
                t
            =c;c=d;d=t-a/b*d;
                
            return gcd;
            }
            int main()
            {
                
            long long x,y,m,n,L,a,b,gcd;
                
            while (scanf("%I64d%I64d",&x,&y)==2)
                {
                    scanf(
            "%I64d%I64d%I64d",&m,&n,&L);
                    a
            =m>n?m-n:n-m;
                    b
            =m>n?y-x:x-y;
                    gcd
            =gcd_ext(a,L);
                    L
            =L/gcd;
                    
            if (b%gcd==0)
                        printf(
            "%I64d\n",((c*b/gcd)%L+L)%L);
                    
            else
                        printf(
            "Impossible\n");
                }
                
            return 0;
            }


            總結(jié):代碼,還是得天天寫(xiě),三日不練手生。自己多想想,多思考思考才能提升能力哈。

                     不要總是去看別人的題解,要有自己的思路哈。

                     數(shù)論,還得繼續(xù)看,繼續(xù)學(xué)。要吃透才行。


            posted on 2012-04-12 00:18 wangs 閱讀(582) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): ACM-模擬

            国产精品久久久久免费a∨| 久久丫精品国产亚洲av不卡| 国产综合成人久久大片91| 精品国产青草久久久久福利| 国产精品免费看久久久香蕉| 综合久久给合久久狠狠狠97色| 久久男人中文字幕资源站| 久久久久无码精品国产不卡| 色成年激情久久综合| 久久99久久99精品免视看动漫| 99国产精品久久| 久久人人添人人爽添人人片牛牛| 97久久久久人妻精品专区| 亚洲人成网站999久久久综合| 成人妇女免费播放久久久| 久久久久亚洲av毛片大| 国产精品久久久亚洲| 久久综合亚洲色HEZYO社区 | 国产激情久久久久影院| 久久妇女高潮几次MBA| 日本三级久久网| 亚洲精品tv久久久久久久久 | 国产亚洲欧美成人久久片| 久久精品国产亚洲Aⅴ蜜臀色欲 | 久久久青草久久久青草| 亚洲а∨天堂久久精品| 久久天堂AV综合合色蜜桃网| 久久精品成人| 久久久久99精品成人片直播| 青春久久| 亚洲国产精品热久久| 久久精品午夜一区二区福利| 欧美性猛交xxxx免费看久久久| 久久99中文字幕久久| 99久久精品免费看国产一区二区三区| segui久久国产精品| 粉嫩小泬无遮挡久久久久久| 久久久久无码精品| 国内精品久久久久影院一蜜桃 | 热99re久久国超精品首页| 99久久夜色精品国产网站|