題目大意:給你乙個序列,用氣泡排序法讓他變為非遞減的序列最少需要幾次。在冒泡交換之間,你有乙個swap操作,該swap操作是交換任意兩個陣列元素的位置,問在該操作後,所再需要的冒泡交換次數是多少,並輸出方案數
思路:樹狀陣列維護一下區間序列,知道該區間內比他大的有幾個就行了。然後暴力。
//view code看看會不會爆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;
}
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...