POJ 2352 Stars(树状数组)

题目链接

蛋疼的一个题,根本看不懂天马行空的题意,各种翻译工具也搞不了。。。模版题,我却怎么也没看出怎么套模版来。。。基本上全部参考的解题报告。。。

了解了树状数组非常需要注意的地方树状数组时没法搞0的。。。。不然会TLE。

 1 #include <stdio.h>
 2 #include <string.h>
 3 #define N 32100
 4 int p[N],level[16000];
 5 int lowbit(int t)
 6 {
 7     return t&(-t);
 8 }
 9 void insert(int t,int d)
10 {
11     while(t <= N)
12     {
13         p[t] += d;
14         t += lowbit(t);
15     }
16 }
17 int getsum(int t)
18 {
19     int sum = 0;
20     while(t > 0)
21     {
22         sum += p[t];
23         t -= lowbit(t);
24     }
25     return sum;
26 }
27 int main()
28 {
29     int n,i,sv,ev;
30     scanf("%d",&n);
31     for(i = 1;i <= n;i ++)
32     {
33         scanf("%d%d",&sv,&ev);
34         level[getsum(sv+1)] ++;
35         insert(sv+1,1);
36     }
37     for(i = 0;i <= n-1;i ++)
38     {
39         printf("%d\n",level[i]);
40     }
41     return 0;
42 }
posted @ 2012-07-17 21:18  Naix_x  阅读(141)  评论(0编辑  收藏  举报