逆序對 線段樹解法

2022-06-02 16:21:09 字數 907 閱讀 2847

逆序對 【線段樹解法】

求逆序對問題是乙個十分經典的演算法問題,通常使用歸併排序解決,經gster大神指點,寫出了逆序對線段樹寫法,順便練了練線段樹。

題目傳送門:

**:

1/*2

segment_tree

3author: shhhs

42016-09-28 12:35:17 5*/

6 #include "

bits/stdc++.h"7

8using

namespace

std ;

9 typedef long

long

qaq ;

10const

int maxn = 100100;11

struct segtree ;

1213 segtree tr[ maxn<<2

] ;14

intarr[ maxn ] ;

15void build_tree ( int x , int y , int

i ) 23}

2425

void insert_tree ( int q , int

i )

30else

35 tr[ i ].sum = tr[ i<<1 ].sum + tr[ i<<1|1

].sum ;36}

3738 qaq query_tree ( int q , int w , int

i )42

else49}

5051

intmain ( )

62 printf ( "

%lld

", ans ) ;

63return0;

64 }

a703 求逆序對 線段樹的解法

time limit 10 second memory limit 2 mb 問題描述 給定乙個序列a1,a2.an。如果存在i小於j 並且ai大於aj,那麼我們稱之為逆序對,求給定序列中逆序對的數目 第一行為n,表示序列長度,接下來的n行,第i 1行表示序列中的第i個數。所有逆序對的總數 432 ...

a703 求逆序對 線段樹的解法

time limit 10 second memory limit 2 mb 問題描述 給定乙個序列a1,a2.an。如果存在i小於j 並且ai大於aj,那麼我們稱之為逆序對,求給定序列中逆序對的數目 第一行為n,表示序列長度,接下來的n行,第i 1行表示序列中的第i個數。所有逆序對的總數 432 ...

洛谷P1908 逆序對(線段樹解法)

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