Time Limit: 9000/3000 MS
(Java/Others) Memory Limit: 32768/32768 K
(Java/Others)
Total Submission(s): 7540 Accepted
Submission(s): 3887
1 //390MS 1020K 720 B C++ 2 //树状数组模板题,还有O(n)的简单算法,这里不贴。 3 #include<stdio.h> 4 #include<string.h> 5 #define N 100005 6 int c[N],d[N]; 7 int lowbit(int k) 8 { 9 return (-k)&k; 10 } 11 int getsum(int k) 12 { 13 int sum=0; 14 while(k<N){ 15 sum+=c[k]; 16 k+=lowbit(k); 17 } 18 return sum; 19 } 20 void update(int k,int detal) 21 { 22 while(k>0){ 23 c[k]+=detal; 24 k-=lowbit(k); 25 } 26 } 27 int main(void) 28 { 29 int n,a,b; 30 while(scanf("%d",&n),n) 31 { 32 memset(c,0,sizeof(c)); 33 memset(d,0,sizeof(d)); 34 for(int i=0;i<n;i++){ 35 scanf("%d%d",&a,&b); 36 update(b,1); 37 update(a-1,-1); 38 } 39 for(int i=1;i<=n;i++) 40 printf(i==n?"%d\n":"%d ",getsum(i)); 41 } 42 return 0; 43 }
hdu 1556 Color the ball (树状数组),布布扣,bubuko.com
hdu 1556 Color the ball (树状数组)
原文:http://www.cnblogs.com/GO-NO-1/p/3676068.html