時間限制:
2000 ms | 記憶體限制:
65535 kb
難度:5
描述在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。
現在,給你乙個n個元素的序列,請你判斷出它的逆序數是多少。
比如 1 3 2 的逆序數就是1。
輸入第一行輸入乙個整數t表示測試資料的組數(1<=t<=5)
每組測試資料的每一行是乙個整數n表示數列中共有n個元素(2〈=n〈=1000000)
隨後的一行共有n個整數ai(0<=ai<1000000000),表示數列中的所有元素。
資料保證在多組測試資料中,多於10萬個數的測試資料最多只有一組。
輸出輸出該數列的逆序數
樣例輸入
2
21 1
31 3 2
樣例輸出
0
1
**
[張云聰]原創
這一題是參考劉汝佳的演算法競賽入門經典的,直接上**,用的是分治法思想
ac**:
# include int a[1000010];
int s[1000010];
long long int cnt;
int merge_sort(int x, int y, int *a, int *t)
else
} for(i=x; i<=y; i++) }}
int main()
cnt=0;
merge_sort(1, n, a, s);
printf("%lld\n", cnt);
} return 0;
}
nyoj117求逆序數
時間限制 2000 ms 記憶體限制 65535 kb 難度 5 描述 在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。現在,給你乙個n個元素的序列,請你判斷出它的逆序數是多少。比如 1 3 2 的逆序數就...
NYOJ117 求逆序數
時間限制 2000 ms 記憶體限制 65535 kb 難度 5 描述 在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。現在,給你乙個n個元素的序列,請你判斷出它的逆序數是多少。比如 1 3 2 的逆序數就...
nyoj 177 求逆序數
時間限制 2000 ms 記憶體限制 65535 kb 難度 5 描述 在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。現在,給你乙個n個元素的序列,請你判斷出它的逆序數是多少。比如 1 3 2 的逆序數就...