当前位置 : 主页 > 手机开发 > harmonyos >

树状数组的模板;

来源:互联网 收集:自由互联 发布时间:2023-08-26
#includestdio.h int c[50050]; int n; int lowbit(int x) { return (x-x); } int sum(int x) { int sum1=0; while(x0) { sum1+=c[x]; x-=lowbit(x); } return sum1; } void add(int i,int x) { while(i=n) { c[i]+=x; i+=lowbit(i); } } int main() { int T;
#include<stdio.h> 

 int c[50050]; 

 int n; 

 int lowbit(int x) 

 { 

     return (x&-x); 

 } 

 int sum(int x) 

 { 

     int sum1=0; 

     while(x>0) 

     { 

         sum1+=c[x]; 

         x-=lowbit(x); 

     } 

     return sum1; 

 } 

 void add(int i,int x) 

 { 

     while(i<=n) 

     { 

         c[i]+=x; 

         i+=lowbit(i); 

     } 

 } 

 int main() 

 { 

     int T; 

     scanf("%d",&T); 

     int i; 

     char str[55]; 

     int x,y,z; 

     for(z=1;z<=T;z++) 

     { 

         scanf("%d",&n); 

         for(i=1;i<=n;i++) 

             c[i]=0; 

         for(i=1;i<=n;i++) 

         { 

             
 scanf("%d",&x);
             add(i,x); 

         } 

         printf("Case %d:\n",z); 

         while(1) 

         { 

             scanf("%s",str); 

             if(str[0]=='E') 

                 break; 

             scanf("%d%d",&x,&y); 

           
  if(str[0]=='Q')
                 printf("%d\n",sum(y)-sum(x-1));
             if(str[0]=='S')
                 add(x,-y);
             if(str[0]=='A')
                 add(x,y); 

         } 

     } 

     return 0; 

 }
上一篇:poj 2724 Purifying Machine 二分图最大匹配
下一篇:没有了
网友评论