• <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>

            ACM PKU 1147 Binary codes 好狡猾的題...強烈推薦 值得反復思考

            http://acm.pku.edu.cn/JudgeOnline/problem?id=1147

            開始我是這樣猜測的:
            輸入的最后一列的元素是第一行出現(xiàn)的元素,所以直接排序輸出即可.
            WA

            研究了n久,原來是題意理解有問題.,,
            這句話很詭異 Then rows of the matrix are sorted in alphabetical order, where ‘0’ is before ‘1’'

            經過研究,發(fā)現(xiàn)題意原來是這樣的 : 1.所有行都是經過某一行的rotated versions  2.即上面這句話的理解:將所有的rotated versions 排序....  3.由1和2,所以行的順序和生成rotated versions 的順序相比,是混亂的....

            注意到有一點是確定的,同一行中最后一個數(shù)和第一個數(shù)的關系.

            方法: 因為是經過按照row排序的,所以第一列肯定是排好序.第一列和最后一列對照,可得出以上說的"混亂"的順序,保存在next數(shù)組里. 最后按照next數(shù)組的順序排列input數(shù)據(jù)...
                     

            這題費了我一個半小時,網上也找不到任何代碼和算法,確實是經典啊~~
            a[] 放輸入數(shù)據(jù),即最后一列
            b[]放第一列
            next[]是根據(jù)這兩列比較得到的順序

            輸出的時候 注意這個通用的小技巧

            Source Code

            Problem: 
            1147  User: lnmm 
            Memory: 104K  Time: 152MS 
            Language: C
            ++  Result: Accepted 

            Source Code 
            #include
            "stdio.h"
            int a[3001];
            int b[3001];
            int next[3001];
            bool used[3001];
            void main()
            {

                
            int n,i,j,k=0;
                scanf(
            "%d",&n);
                
            for(i=1;i<=n;i++)
                
            {
                    scanf(
            "%d",&a[i]);
                    
            if(a[i]==1)k++;
                    used[i]
            =false;
                }

                
            for(i=1;i<=n-k;i++)
                    b[i]
            =0;
                
            for(i=n-k+1;i<=n;i++)
                    b[i]
            =1;
               

                
            for(i=1;i<=n;i++)
                
            {
                    j
            =1;
                    
            while((b[i]!=a[j])||(used[j]==true))j++;
                    used[j]
            =true;
                    next[i]
            =j;
                }



                k
            =1;
                
            for(i=1;i<=n;i++)
                
            {
                    k
            =next[k];
                    printf(
            "%d ",a[k]);
                }




            }



             

            posted on 2007-11-08 13:42 流牛ζ木馬 閱讀(1742) 評論(2)  編輯 收藏 引用

            評論

            # re: ACM PKU 1147 Binary codes 好狡猾的題...強烈推薦 值得反復思考 2007-11-11 15:49 Run&Run

            真是巧妙,想了我兩個小才想明白  回復  更多評論   

            # re: ACM PKU 1147 Binary codes 好狡猾的題...強烈推薦 值得反復思考 2008-11-09 00:10 ddd

            還是不懂,學長可不可以再講明白點啊。。謝謝了啊,  回復  更多評論   

            <2007年11月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            導航

            統(tǒng)計

            公告

            MY Email/MSN :mars1021@163.com QQ : 27402040 流牛ζ木馬

            常用鏈接

            留言簿(6)

            隨筆檔案

            相冊

            搜索

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲狠狠婷婷综合久久久久| 国产综合精品久久亚洲| 亚洲精品tv久久久久久久久久| 九九久久精品国产| 久久九九兔免费精品6| 久久久精品国产sm调教网站| 久久精品国产99国产精偷| 精品欧美一区二区三区久久久| 亚洲国产成人精品久久久国产成人一区二区三区综 | 色婷婷综合久久久久中文 | 久久国产精品无码一区二区三区 | 久久久久久久久久久免费精品| 久久大香萑太香蕉av| 久久免费国产精品一区二区| 色偷偷91久久综合噜噜噜噜| 久久夜色精品国产噜噜噜亚洲AV | 久久91综合国产91久久精品| 伊人久久大香线蕉综合热线| 久久久久亚洲AV无码永不| 久久国产精品免费一区| …久久精品99久久香蕉国产| 欧美激情一区二区久久久| 精品多毛少妇人妻AV免费久久| 亚洲色婷婷综合久久| 色婷婷狠狠久久综合五月| 久久精品一区二区三区中文字幕| 久久久久99精品成人片试看| 波多野结衣久久一区二区 | 很黄很污的网站久久mimi色 | 久久黄视频| 国产精品美女久久久免费 | 亚洲国产香蕉人人爽成AV片久久| 91精品国产综合久久香蕉 | 久久亚洲春色中文字幕久久久 | 久久99精品国产99久久| 亚洲国产精品无码久久| 欧美黑人激情性久久| 精产国品久久一二三产区区别| 久久av高潮av无码av喷吹| 久久本道久久综合伊人| 久久久久久国产精品美女 |