树状数组模板题(特强浓雾

#include<bits/stdc++.h>
using namespace std;
int a,b;
int c[100005];
void add(int x,int y)//树状数组初始化
{
	while(x<=a+b) c[x]+=y,x+=x&-x;//露馅了噗哈哈哈哈哈哈蛤哈哈哈哈哈哈
}
int ask(int x)//询问
{
	int ans=0;
	while(x) ans+=c[x],x-=x&-x;
	return ans;
}
int main()
{
	scanf("%d%d",&a,&b);
	for(int i=1;i<=a+b;i++) add(i,1);//初始化
	printf("%d",ask(a)+ask(b));
	return 0;
}

都直接a+b了还用什么树状数组

看看方法就行了,主要是初始化、查询区间和的方法。

posted @ 2019-09-07 09:35  轩辕东升  阅读(176)  评论(0编辑  收藏  举报