• hdu Color the ball


    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556

    树状数组的  update的应用,逆序更新

    代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <math.h>
     4 #include <limits.h> 
     5 #include <algorithm>
     6 #include <iostream>
     7 #include <ctype.h>
     8 #include <iomanip>
     9 #include <queue>
    10 #include <map>
    11 #include <stdlib.h>
    12 using namespace std;
    13 
    14 int c[100010],n;
    15 
    16 int lowbit(int x)
    17 {
    18     return x&(-x);
    19 }
    20 
    21 void update(int x,int y)
    22 {
    23     while(x>0){
    24         c[x]=c[x]+y;
    25         x=x-lowbit(x);
    26     }
    27 }
    28 
    29 int sum(int x)
    30 {
    31     int r=0;
    32     while(x<=n){
    33         r+=c[x];
    34         x+=lowbit(x);
    35     }
    36     return r;
    37 }
    38 
    39 int main()
    40 {
    41     int a,b;
    42     while(~scanf("%d",&n)&&n!=0){
    43         memset(c,0,sizeof(c));
    44         for(int i=1;i<=n;i++){
    45             scanf("%d%d",&a,&b);
    46             update(b,1);
    47             update(a-1,-1);
    48         }
    49         for(int i=1;i<n;i++){
    50             printf("%d ",sum(i));
    51         }
    52         printf("%d
    ",sum(n));
    53     }
    54 }
  • 相关阅读:
    hadoop wordcount
    hadoop map reduce 实例wordcount的使用
    玉髓
    数据类型检测的四种方式
    天猫前端招聘要求
    正则示例1
    字面量和实例创建的区别
    正则表达式
    面试题1
    this关键字
  • 原文地址:https://www.cnblogs.com/wangmengmeng/p/4975602.html
Copyright © 2020-2023  润新知