逆序數技巧 牛客

2022-06-27 02:57:08 字數 961 閱讀 4017

第一行包括乙個正整數n(1≤n≤10^5)。

接下來一行,包括乙個長度為n的序列,序列為1到n的一種排列。

第三行包括乙個正整數q(1≤q≤10^5)。

接下來q行,每行包括三個正整數l,r,k(1≤l≤r≤n,1≤k≤10^9)。

所有變數的含義題面均有給出。

在每次操作後,逆序數如果是奇數,就輸出1,如果是偶數,就輸出0。
示例1

複製

4

2 3 1 4

31 3 2

2 4 1

2 3 1

複製

0

01

原序列為:2 3 1 4

第一次操作後,序列變為:3 1 2 4,逆序數為2,所以答案為0。

第二次操作後,序列變為:3 4 1 2,逆序數為4,所以答案為0。

第三次操作後,序列變為:3 1 4 2,逆序數為3,所以答案為1。

題意 : 每次選擇乙個區間迴圈變換, 求整個串的逆序數是奇數還是偶數

思路分析 :

首先可以很容易求出整個序列的逆序數是多少,然後迴圈移位某乙個區間時,會有個小特點就是,移動一步時,逆序數變化只會取決於他前面可操作區間的長度,,若其為偶數,則逆序數的奇偶不會發生變化,否則會產生變化。

**示例 :

int n;

int a[maxn];

int l, r, k;

int c[maxn];

int lowbit(int x)

void add(int pos)

}int query(int pos)

return res;

}int ans = 0;

void solve()

}int main()

return 0;

}

牛客網 A 逆序數

時間限制 c c 2秒,其他語言4秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld 在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個 逆序。乙個排列中逆序的總數就稱為這個排列的 逆序數。比如乙個序列為4 ...

牛客網 A 逆序數

題目鏈結 在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個 逆序。乙個排列中逆序的總數就稱為這個排列的 逆序數。比如乙個序列為4 5 1 3 2,那麼這個序列的逆序數為7,逆序對分別為 4,1 4,3 4,2 5,1 5,3 5,2 3,2 第一行有乙個整...

牛客 逆序數 (歸併排序)

題目描述 在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。比如乙個序列為4 5 1 3 2,那麼這個序列的逆序數為7,逆序對分別為 4,1 4,3 4,2 5,1 5,3 5,2 3,2 輸入描述 第一行有...