zoukankan      html  css  js  c++  java
  • hdu-1556 Color the ball(树状数组)

    题目链接:

    Color the ball

    Time Limit: 9000/3000 MS (Java/Others)  

    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 14781    Accepted Submission(s): 7394


    Problem Description
    N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?
     
    Input
    每个测试实例第一行为一个整数N,(N <= 100000).接下来的N行,每行包括2个整数a b(1 <= a <= b <= N)。
    当N = 0,输入结束。
     
    Output
    每个测试实例输出一行,包括N个整数,第I个数代表第I个气球总共被涂色的次数。
     
    Sample Input
    3
    1 1
    2 2
    3 3
    3
    1 1
    1 2
    1 3
    0
     
    Sample Output
    1 1 1
    3 2 1

    思路:在l上+1,r+1上-1,就变成了求和;

    AC代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    const int N=1e5+4;
    int sum[N],n,l,r;
    int lowbit(int x)
    {
        return x&(-x);
    }
    void update(int x,int num)
    {
        while(x<=n)
        {
            sum[x]+=num;
            x+=lowbit(x);
        }
    }
    int query(int x)
    {
        int s=0;
        while(x>0)
        {
            s+=sum[x];
            x-=lowbit(x);
        }
        return s;
    }
    int main()
    {
        while(1)
        {
            memset(sum,0,sizeof(sum));
            scanf("%d",&n);
            if(n==0)break;
            for(int i=0;i<n;i++)
            {
                scanf("%d%d",&l,&r);
                update(l,1);
                update(r+1,-1);
            }
            for(int i=1;i<n;i++)
            {
                printf("%d ",query(i));
            }
            printf("%d
    ",query(n));
        }
        return 0;
    }
  • 相关阅读:
    jQuery 语法
    jQuery 简介
    把数据存储到 XML 文件
    XML 注意事项
    XML DOM (Document Object Model) 定义了访问和操作 XML 文档的标准方法。
    通过 PHP 生成 XML
    XML 命名空间(XML Namespaces)
    XML to HTML
    XMLHttpRequest 对象
    使用 XSLT 显示 XML
  • 原文地址:https://www.cnblogs.com/zhangchengc919/p/5317048.html
Copyright © 2011-2022 走看看