兔子的逆序對

2021-10-19 22:54:21 字數 1211 閱讀 4667

輸出描述:

輸出共m行每行乙個字串,表示反轉後序列逆序對個數的奇偶性,如果是逆序對個數奇數,輸出"dislike"(不含引號),如果是偶數,輸出"like"。

示例1輸入

41 2 3 4

41 2

3 41 4

2 3輸出

dislike

like

like

dislike

說明注意:以下的(i,j)指的是位置 i 和位置 j

a= 的逆序對是 (1,2) 共1個,1是奇數,所以是dislike

a= 的逆序對是 (1,2) (3,4)共2個,2是偶數,所以是like

a= 的逆序對是 (1,3) (1,4) (2,3) (2,4)共4個,4是偶數,所以是like

a= 的逆序對是 (1,2) (1,4) (3,4) 共3個,3是奇數,所以是dislike

備註:對於20%的資料

1 ≤ n ≤ 100

1 ≤ m ≤ 10

對於40%的資料

1 ≤ n ≤ 2000

1 ≤ m ≤ 50

對於60%的資料

1 ≤ n ≤ 2000

1 ≤ m ≤ 104

對於100%的資料

1 ≤ n ≤ 105

1 ≤ m ≤ 2*106

對於所有資料 l ≤ r且 ai 是n的乙個排列,即ai互不相同且ai ≤ n

由於讀入資料較大,建議使用快速讀入。

#include

using

namespace std;

#define ll long long

const

int maxn =

1e6+

117;

int n, m, a[maxn]

, b[maxn]

;ll l, r, cnt;

void

solve

(int l,

int mid,

int r)

}for

(int i = l; i <= r; i++

) a[i]

= b[i];}

void

erfen

(int l,

int r)

}int

main()

return0;

}

兔子的逆序對

兔子的逆序對 時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld 第一行乙個整數 n,表示序列的大小。第二行 n 個整數ai 表示序列的各個元素。第三行乙個整數m,表示操作個數。接下來 m 行,每行兩個整數 l,r,...

兔子的逆序對

兔子的逆序對 歸併排序做法 序言題目描述 輸入格式 第一行乙個整數 n,表示序列的大小。第二行 n 個整數ai 表示序列的各個元素。第三行乙個整數m,表示操作個數。接下來 m 行,每行兩個整數 l,r,表示反轉的區間。輸出格式 輸出共m行每行乙個字串,表示反轉後序列逆序對個數的奇偶性,如果是逆序對個...

NC20861兔子的逆序對

首先吐槽 這只兔子的事真多 首先,啊,不對,假裝沒寫 second,一定要看備註 用快讀 第三 cout會t,printf不會 這其實就是先求出逆序對的數量 就是歸併排序 然後就非常簡單了 這裡有一條重要資訊 乙個排序中任意兩個元素對換,排列會改變逆序數 於是我們可以在反轉區間上找找規律 設反轉區間...