1 ///树状数组模板 2 int lowbit(int x) 3 { 4 return x&-x; 5 } 6 7 void updata(int i,int x) 8 { 9 if (i>n) return ; 10 a[i]+=x; 11 i+=lowbit(i); 12 updata(i,x); 13 } 14 15 int sum(int i) 16 { 17 if (i<=0) return 0; 18 return a[i]+sum(i-lowbit(i)); 19 }
1 ///树状数组模板 2 int lowbit(int x) 3 { 4 return x&-x; 5 } 6 7 void updata(int i,int x) 8 { 9 if (i>n) return ; 10 a[i]+=x; 11 i+=lowbit(i); 12 updata(i,x); 13 } 14 15 int sum(int i) 16 { 17 if (i<=0) return 0; 18 return a[i]+sum(i-lowbit(i)); 19 }