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

            ______________白白の屋
            posts - 182, comments - 102, trackbacks - 0, articles - 0
            <2010年10月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(24)

            隨筆分類(332)

            隨筆檔案(182)

            FRIENDS

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            MiYu原創, 轉帖請注明 : 轉載自 ______________白白の屋    

            題目地址 :

                  http://acm.hdu.edu.cn/showproblem.php?pid=2689 

            題目描述:

               其實就是求 冒泡排序時 的交換次數,  當然也可以求逆序數來解決問題, 下面是2份 代碼:

             

            代碼
            //直接冒泡排序求交換的次數
            /*

            Mail to   : miyubai@gamil.com
            My Blog   : www.baiyun.me
            Link      : 
            http://www.cnblogs.com/MiYu  || http://www.shnenglu.com/MiYu
            Author By : MiYu
            Test      : 1
            Complier  : g++ mingw32-3.4.2
            Program   : HDU_2689
            Doc Name  : Sort it
            */
            //#pragma warning( disable:4789 )
            #include <iostream>
            #include 
            <fstream>
            #include 
            <sstream>
            #include 
            <algorithm>
            #include 
            <string>
            #include 
            <set>
            #include 
            <map>
            #include 
            <utility>
            #include 
            <queue>
            #include 
            <stack>
            #include 
            <list>
            #include 
            <vector>
            #include 
            <cstdio>
            #include 
            <cstdlib>
            #include 
            <cstring>
            #include 
            <cmath>
            #include 
            <ctime>
            using namespace std;
            int N, num[1010];
            inline 
            void swap ( int &a, int &b ) {
                   a 
            ^= b ^= a ^= b;       
            }
            int bouble () {
                
            int sum = 0;
                
            for ( int i = 0; i < N; ++ i ) {
                     
            for ( int j = 1; j < N - i; ++ j ) {
                          
            if ( num[j-1> num[j] ) {
                               swap ( num[j
            -1], num[j] );
                               
            ++ sum;
                          }    
                     }    
                }    
                
            return sum;
            }
            void print () {
                 
            for ( int i = 0; i < N; ++ i )
                 cout 
            << num[i] << " ";
                 cout 
            << endl;     
            }
            int main ()
            {
                
            while ( scanf ( "%d"&N ) == 1 ) {
                       
            for ( int i = 0; i < N; ++ i ) {
                            scanf ( 
            "%d", num + i );    
                       }       
                       printf ( 
            "%d\n",bouble () );
                      
            // print ();
                }
                
            return 0;
            }

            //樹狀數組求逆序數法
            /*

            Mail to   : miyubai@gamil.com
            My Blog   : www.baiyun.me
            Link      : 
            http://www.cnblogs.com/MiYu  || http://www.shnenglu.com/MiYu
            Author By : MiYu
            Test      : 1
            Complier  : g++ mingw32-3.4.2
            Program   : HDU_2689
            Doc Name  : Sort it
            */
            //#pragma warning( disable:4789 )
            #include <iostream>
            #include 
            <fstream>
            #include 
            <sstream>
            #include 
            <algorithm>
            #include 
            <string>
            #include 
            <set>
            #include 
            <map>
            #include 
            <utility>
            #include 
            <queue>
            #include 
            <stack>
            #include 
            <list>
            #include 
            <vector>
            #include 
            <cstdio>
            #include 
            <cstdlib>
            #include 
            <cstring>
            #include 
            <cmath>
            #include 
            <ctime>
            using namespace std;
            int N,val,num[1010],low[1010];
            void init () {
                 
            for ( int i = 0; i <= 1010++ i ) {
                      low[i] 
            = i & ( -i );    
                 }
            }
            void modify ( int x ) {
                 
            while ( x <= N ) {
                        
            ++ num[x];      
                        x 
            += low[x];
                 }     
            }
            int query ( int x ) {
                
            int sum = 0;
                
            while ( x > 0 ) {
                       sum 
            += num[x];
                       x 
            -= low[x];      
                }    
                
            return sum;
            }
            int main ()
            {
                init ();
                
            while ( scanf ( "%d"&N ) == 1 ) {
                       memset ( num, 
            0sizeof ( num ) );  
                       
            int sum = 0;
                       
            for ( int i = 0; i < N; ++ i ) {
                            scanf ( 
            "%d"&val );
                            modify ( val ); 
                            sum 
            += i - query ( val - 1 );   
                       }  
                       printf ( 
            "%d\n", sum );
                }
                 
                
            return 0;
            }

             

            久久精品黄AA片一区二区三区| 精品欧美一区二区三区久久久 | 国产精品无码久久久久久| 久久午夜免费视频| 思思久久好好热精品国产| 亚洲中文字幕伊人久久无码 | 国产精品视频久久久| 久久久婷婷五月亚洲97号色| 一本一本久久A久久综合精品| 久久久久国产精品人妻| 色偷偷久久一区二区三区| 久久精品国产亚洲av水果派 | 狠狠人妻久久久久久综合蜜桃| 国产99久久精品一区二区| 国产精品久久影院| 日韩精品久久久久久| 久久国产精品免费| 色播久久人人爽人人爽人人片AV| 久久久久久午夜精品| 久久狠狠高潮亚洲精品| 久久99国产精品久久久| 国产99久久九九精品无码| 人妻无码精品久久亚瑟影视| 久久久久国产精品嫩草影院| 狠狠色丁香久久婷婷综合五月| 国产精品美女久久久久AV福利| 久久最新免费视频| 久久精品国产99久久久| 国内精品伊人久久久久网站| 精品国产青草久久久久福利| 日本福利片国产午夜久久| 久久久久国产精品嫩草影院| 中文字幕乱码人妻无码久久| 人人狠狠综合久久亚洲婷婷| 国产亚洲精品久久久久秋霞| 色噜噜狠狠先锋影音久久| 久久免费视频1| 国产日韩久久免费影院| 久久精品人人做人人爽电影蜜月| 久久se精品一区精品二区国产| 久久久久亚洲av无码专区 |