マージソートアプリケーション - の数を逆転しようとしています

トピック:

列の数の逆演算、ください数整数シーケンス番号の長さnを与えられ。

逆ペアは次のように定義された:i <jおよび[I]>の逆である[j]を、満たしている場合、i番目および列番号のj番目の要素のため、それ以外の場合ではありません。

入力形式

最初の行は、整数nを含むシーケンスの長さです。

第二行は、列の全体の数を表す整数N含有します。

出力フォーマット

出力逆順の数を表す整数。

データ範囲

1 N 100000 1≤n≤100000

サンプル入力:

6
2 3 4 5 6 1

出力例:

5

コード:

1の#include <iostreamの>
 2の#include <アルゴリズム>
 3  使用して 名前空間をSTD。
4  
5  CONST  INT = N 1E7。
6  
7  長いARR [N]。
8  長いヘルプ[N]。
9  INT N。
10の 
11  長い ANS。
12  
13  空隙 union_sort(int型 L、INT R){
 14      場合(L> = R)リターン;
15      int型ミッド= L + R >> 1 16     union_sort(L、MID)。
17      union_sort(MID + 1 、R)。
18      INT iは= L、J =ミッド+ 1、k = 1 19      一方(I <=ミッド&& J <= {r)が
 20          であれば(ARR [I] <= ARR [J])
 21              の助け[K ++] = ARR [I ++ ]。
22          {
 23              ヘルプ[K ++] = ARR [J ++ ]。
24の              ANS + =ミッド- I + 1 25          }
 26      }
 27      ながら(I <= MID)ヘルプ[K ++] = ARR [I ++ ]。
28      一方(J <= R)ヘルプ[K ++] = ARR [J ++ ]。
29      のためにINT iは= L、J = 1 ; I <= R; ++ I)
 30          ARR [I] =ヘルプ[J ++ ]。
31  }
 32  
33  INT メイン(){
 34      CIN >> N。
35      のためにINT iは= 1 ; iが<= N; ++ I)CIN >> ARR [I]。
36      union_sort(1 、N)
37      COUT << ANS。
38      リターン 0 ;
39 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/sxq-study/p/12378693.html