基本上即使原来函数有的操作,更新和查询,sub的时候改成负数。
1 #include2 #include 3 int c[1000005],n; 4 int lowbit(int x) 5 { 6 return x&(-x); 7 } 8 int sum(int x) 9 {10 int ret=0;11 while(x>0)12 {13 ret+=c[x];14 x-=lowbit(x);15 }16 return ret;17 }18 void add(int x,int d)19 {20 while(x<=n)21 {22 c[x]+=d;23 x+=lowbit(x);24 }25 }26 int main()27 {28 int T,count=1;29 scanf("%d",&T);30 while(T--)31 {32 printf("Case %d:\n",count++);33 memset(c,0,sizeof(c));34 scanf("%d",&n);35 int a;36 for(int i=0;i