/**
[统计]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 =
[统计]hunnu 10571 Counting Girls#树状数组
最新推荐文章于 2022-07-09 22:48:59 发布
该博客介绍了如何利用树状数组解决一道统计问题,包括插入、删除、查询等操作。博主强调了在处理输入时要注意将x加1,并且指出了题目的潜在陷阱,即输入的x应该小于200000。此外,还提供了一个C语言实现的完整代码示例。
摘要由CSDN通过智能技术生成