树状数组模板题(特强浓雾
#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了还用什么树状数组
看看方法就行了,主要是初始化、查询区间和的方法。