• <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年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(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免费人成_看片中文| 国产精品永久久久久久久久久| 99久久无码一区人妻| 久久久久久国产精品免费免费| 久久无码人妻精品一区二区三区 | 99久久精品国产一区二区| 久久久久亚洲精品日久生情| AV色综合久久天堂AV色综合在| 久久婷婷五月综合97色直播| 国产—久久香蕉国产线看观看| 亚洲国产成人精品91久久久 | 久久久久久久国产免费看| 久久精品这里只有精99品| 一本色道久久综合狠狠躁 | 久久久久亚洲AV无码专区网站| 日韩中文久久| 88久久精品无码一区二区毛片 | 99久久夜色精品国产网站| 欧美麻豆久久久久久中文| 久久精品国产第一区二区三区| 久久亚洲高清综合| 成人久久精品一区二区三区| A级毛片无码久久精品免费| 美女写真久久影院| 国产高清美女一级a毛片久久w| 精品国产乱码久久久久软件| 韩国三级中文字幕hd久久精品| 99久久99这里只有免费的精品| 亚洲国产精品无码久久九九| 中文字幕精品久久| 久久www免费人成精品香蕉| 久久天堂AV综合合色蜜桃网| 亚洲AV无码1区2区久久| 99蜜桃臀久久久欧美精品网站| 999久久久国产精品| 久久午夜电影网| 大伊人青草狠狠久久| 99久久人妻无码精品系列| 浪潮AV色综合久久天堂| 婷婷久久久亚洲欧洲日产国码AV| 久久夜色精品国产噜噜亚洲a|