/**
[统计]hunnu 10571 Counting Girls#树状数组
command 0--6
0 x插入x
1 x删除x
2 x询问x的个数
3 x询问第x大
4 x,y 询问[x,y]区间个数
5 x,y 询问[xth,yth]大的平均数
6 询问数组大小
用树状数组需要注意,输入的x可能为0,这里把所有的x处理成了x+1
其次,题目描述坑爹,输入的x应该是小于200000
*/
#include <stdio.h>
#include <string.h>
using namespace std;
#define N 200002
#define lowbit(i) (i & -i)
__int64 s[N],r[N];
void add(int i,int c,__int64 *arr)
{
for(; i < N; i += lowbit(i))
arr[i] += c;
}
__int64 sum(int i,__int64 *arr)
{
__int64 ans = 0LL;
for(; i > 0; i -= lowbit(i))
ans += arr[i];
return ans;
}
int total;
int getK(int x)
{
int l = 1,rr = N - 1,mid;
while(l < rr)
{
mid = ( l + rr) >> 1;
if(sum(mid,r) < x )
[统计]hunnu 10571 Counting Girls#树状数组
最新推荐文章于 2022-07-09 22:48:59 发布