zoukankan      html  css  js  c++  java
  • HDU1556-color the ball(线段树)


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


    #include<cstdio>
    using namespace std;
    struct node
    {
        int start;
        int end;
        int num;
    };
    node q[500000];
    void built(int s,int e,int key)
    {
        q[key].start=s;
        q[key].end=e;
        q[key].num=0;
        if(s==e)
        {
            return;
        }
        int mid=(s+e)/2;
        built(s,mid,2*key);
        built(mid+1,e,2*key+1);
    }
    void updata(int i,int j,int key)
    {
        if(q[key].start==i&&q[key].end==j)
        {
            q[key].num++;
            return;
        }
        int mid=(q[key].start+q[key].end)/2;
        if(i<=mid&&j>mid)
        {
            updata(i,mid,2*key);
            updata(mid+1,j,2*key+1);
        }
        else
        {
            if(i<=mid)
            updata(i,j,2*key);
            if(j>mid)
            updata(i,j,2*key+1);
        }
    }
    void insert(int i,int j,int key)
    {
        if(key!=1)
        q[key].num+=q[key/2].num;
        if(q[key].start==q[key].end)
        {
            return;
        }
        int mid=(q[key].start+q[key].end)/2;
        if(i<=mid)
        insert(i,j,2*key);
        if(j>mid)
        insert(i,j,2*key+1);
    }
    int check(int i,int key)
    {
        if(q[key].start==q[key].end)
        return q[key].num;
        int mid=(q[key].start+q[key].end)/2;
        if(i<=mid)
        check(i,2*key);
        else
        check(i,2*key+1);
    }
    int main()
    {
        int N,a,b,i;
        while(scanf("%d",&N)&&N)
        {
            built(1,N,1);
            for(i=1;i<=N;i++)
            {
                scanf("%d%d",&a,&b);
                updata(a,b,1);
            }
            insert(1,N,1);
            printf("%d",check(1,1));
            for(i=2;i<=N;i++)
            printf("% d",check(i,1));
            printf("
    ");
        }
        return 0;
    }
    




  • 相关阅读:
    超级楼梯
    超级楼梯
    母牛的故事
    母牛的故事
    蟠桃记
    蟠桃记
    Children’s Queue
    Children’s Queue
    http://202.194.116.8/webapps/portal/frameset.jsp?tab_id=_2_1&url=%2fwebapps%2fblackboard%2fexecute%2
    Matlab位运算笔记
  • 原文地址:https://www.cnblogs.com/westwind1005/p/5975253.html
Copyright © 2011-2022 走看看