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

             

            三级韩国一区久久二区综合| 精品久久亚洲中文无码| www亚洲欲色成人久久精品| 国产69精品久久久久9999| 国产成人精品久久亚洲高清不卡| 老司机午夜网站国内精品久久久久久久久| 精品无码久久久久久久久久| 2021国产精品午夜久久| 亚洲国产成人久久精品影视| 欧美日韩久久中文字幕| 久久精品国产久精国产| 久久久久久久久久久| 亚洲国产成人久久综合碰碰动漫3d | 日本欧美久久久久免费播放网| 久久99国内精品自在现线| 久久免费视频1| 久久久精品国产Sm最大网站| 久久久久久毛片免费播放| 欧美久久久久久精选9999| 精品久久久无码人妻中文字幕豆芽| 久久99精品国产99久久6| 久久99免费视频| 国产精品久久久福利| 77777亚洲午夜久久多喷| 亚洲天堂久久久| 午夜精品久久久久久久无码| 一级做a爰片久久毛片16| 国产精品久久永久免费| 日日噜噜夜夜狠狠久久丁香五月 | 色综合合久久天天给综看| 成人久久久观看免费毛片| 人妻少妇久久中文字幕一区二区| 婷婷久久综合九色综合绿巨人| 大蕉久久伊人中文字幕| 久久久久久久尹人综合网亚洲| 国产精品禁18久久久夂久| 亚洲精品国精品久久99热一| 亚洲成色www久久网站夜月| 性色欲网站人妻丰满中文久久不卡| 国产成人综合久久精品红| 思思久久好好热精品国产|