P1908 逆序對 樹狀陣列

2021-10-07 09:26:03 字數 1085 閱讀 6511

p1908

題目描述

貓貓 tom 和小老鼠 jerry 最近又較量上了,但是畢竟都是成年人,他們已經不喜歡再玩那種你追我趕的遊戲,現在他們喜歡玩統計。

最近,tom 老貓查閱到乙個人類稱之為「逆序對」的東西,這東西是這樣定義的:對於給定的一段正整數序列,逆序對就是序列中 ai>aj且 iupdate:資料已加強。

輸入格式

第一行,乙個數 nn,表示序列中有 nn個數。

第二行 nn 個數,表示給定的序列。序列中每個數字不超過 10^9109。

輸出格式

輸出序列中逆序對的數目。

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int maxn =5*

1e5+5;

ll a[maxn]

, n;

ll ch[maxn]

;struct node

t[maxn]

;int

lowbit

(int x)

bool

cmp(node t1, node t2)

void

change

(int pos,

int x)

}int

sum(

int n)

return res;

}int

main()

stable_sort

(t +

1, t + n +

1, cmp)

;for

(int i =

1; i <= n; i++

)for

(int i =

1; i <= n; i++

) cout << ans;

return0;

}

P1908 逆序對 (樹狀陣列)

比較喜歡線段樹,懶得用樹狀陣列 只會套模板,位運算的精髓沒有領悟到 一直沒有記錄樹狀陣列 又得撿回來,趁這道題記錄一下模板,為三維偏序cdq套樹狀陣列鋪墊一下。解題思路 先對原陣列a從大到小排序,依次新增進樹狀陣列c裡,每次求字首和的結果就是 當前數的逆序對的個數。例如資料 55,44,22,66,...

P1908 逆序對 樹狀陣列解法)

題目描述 貓貓 tom 和小老鼠 jerry 最近又較量上了,但是畢竟都是成年人,他們已經不喜歡再玩那種你追我趕的遊戲,現在他們喜歡玩統計。最近,tom 老貓查閱到乙個人類稱之為 逆序對 的東西,這東西是這樣定義的 對於給定的一段正整數序列,逆序對就是序列中 ai aja i a ja i a j ...

洛谷P1908 逆序對(樹狀陣列)

題目描述 貓貓tom和小老鼠jerry最近又較量上了,但是畢竟都是成年人,他們已經不喜歡再玩那種你追我趕的遊戲,現在他們喜歡玩統計。最近,tom老貓查閱到乙個人類稱之為 逆序對 的東西,這東西是這樣定義的 對於給定的一段正整數序列,逆序對就是序列中ai aj且i輸入輸出格式 輸入格式 第一行,乙個數...