这几天主要还是在看树状数组方面的知识点例题以及刷练习题,树状数组除了用于求和外,还可以用于找出容器中大于某个数的第k个数,还可以进行插入删除等操作,并且树状数组还可以用二分优化。其用二分优化的查找大于某个数的第k个数的基本模版如下:
#include <iostream>
using namespace std;
#define maxn 100002
int C[maxn], n;
int lowbit(int x) {
return x & (-x);
}
void Add(int pos, int val) {
while(pos < maxn) {
C[pos] += val;
pos += lowbit(pos);
}
}
int Sum(int pos) {
in