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 }

你可能感兴趣的:(树状数组)