輸出描述:
輸出共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不會 這其實就是先求出逆序對的數量 就是歸併排序 然後就非常簡單了 這裡有一條重要資訊 乙個排序中任意兩個元素對換,排列會改變逆序數 於是我們可以在反轉區間上找找規律 設反轉區間...