树状数组
树状数组的作用和线段树基本一致,主要有更改和查询两种 一、单点修改和区间查询( 洛谷p3374 ) 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cctype> #include<cmath> #include<cstdlib> #include<queue> #include<ctime> #include<vector> #include<set> #include<map> #include<stack> using namespace std; int c[2000000]; int n; int lowbit(int x){ return x&(-x); } void add(int pos,int x){ while(pos<=n){ c[pos]+=x; pos+=lowbit(pos); } } int sum(int x){ int ans=0; while(x){ ans+=c[x]; x-=lowbit(x); } return ans; } int main() { int m,i,j,k,x,y; cin>>n>>m; for(i=1;i<=n;i++){ scanf("%d",&x); add(i