1265. 数星星(树状数组/蓝桥杯)

题目:

1265. 数星星(树状数组/蓝桥杯)_第1张图片

输入样例:
5
1 1
5 1
7 1
3 3
5 5
输出样例:
1
2
1
1
0

思路: 树状数组

 1265. 数星星(树状数组/蓝桥杯)_第2张图片

 代码:

#include
#include
using namespace std;
const int N=32010;
int n;
int tr[N],level[N];

int lowbit(int x)
{
    return x&-x;
}

//在位置x上+1,不是把x+1
void add(int x,int v)//因为tr[]没有初始化,所以x位置刚开始为0
{
    for(int i=x;i<=N;i+=lowbit(i))tr[i]+=v;
}

//横坐标在1~x之间星星数量的在线(动态)前缀和
int query(int x)
{
    int res=0;
    for(int i=x;i;i-=lowbit(i))res+=tr[i];
    return res;
}

int main()
{
    cin>>n;
    for(int i=0;i

你可能感兴趣的:(前缀和,模拟,蓝桥杯,c++,算法,数据结构)