codeforce div2 C 樹狀陣列

2022-05-01 20:03:07 字數 1141 閱讀 4856

題目大意:給你乙個序列,用氣泡排序法讓他變為非遞減的序列最少需要幾次。在冒泡交換之間,你有乙個swap操作,該swap操作是交換任意兩個陣列元素的位置,問在該操作後,所再需要的冒泡交換次數是多少,並輸出方案數

思路:樹狀陣列維護一下區間序列,知道該區間內比他大的有幾個就行了。然後暴力。

//

看看會不會爆int!陣列會不會少了一維!

//取物問題一定要小心先手勝利的條件

#include using

namespace

std;

#define ll long long

#define all(a) a.begin(), a.end()

#define pb push_back

#define mk make_pair

#define fi first

#define se second

const

int maxn = 5000 + 5

;int

tree[maxn], a[maxn];

intbig[maxn][maxn], big2[maxn][maxn];

intn;

int lowbit(int x)

int sum(int

x)

return

ans;

}void add(int x, int

val)

}int

main()

int tot = 0

;

for (int i = n; i >= 1; i--)

///l->r的區間

///區間內比他大的

for (int i = n; i > 0; i--)

}///r->l的區間

///區間內比他大的

for (int i = 1; i <= n; i++)

}int mintot =tot;

int cnt = 0

;

for (int i = 1; i <= n; i++)

}printf(

"%d %d\n

", mintot, cnt);

return0;

}

view code

C語言線段樹 2

description 很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。這讓很多學生很反感。不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。input 本題目包含多組測試,請處理到檔案結束。在...

KD樹 BBF KNN使用C 實現(2)

在上一節中我們講解了kd的構造過程,這裡我們主要講解的kd的搜尋過程,如何查詢距離目標點最近的點。我們先把kd樹的最鄰近搜尋 knn 的 貼上出來 private node kdtreefindnearest node tree,train target else searchnode search...

紅黑樹的C 實現(2)

因為紅黑樹首先是二叉所搜樹,所以有了二叉搜尋樹的實現,我們就可以重用部分二叉搜尋樹的類的介面了,rbt.h ifndef rbt h define rbt h include bst.h template class credblacktree public cbinarysorttree virt...