• Color the ball(HDU1556)树状数组


    每次对区间内气球进行一次染色,求n次操作后后所有气球染色次数。

    树状数组,上下区间更新都可以,差别不大。

    1.对于[x,y]区间,对第x-1位减1,第y位加1,之后向上统计

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=100000+10;
    int ans[maxn],Tree[maxn],n;
    inline int lowbit(int x) //计算2^k
    {
        return (x&-x);
    }
    void add(int x,int value)
    {
        for(int i=x; i<maxn; i+=lowbit(i))
            Tree[i]+=value;
    }
    void up(int x,int val)
    {
        while(x>0)
        {
            Tree[x]+=val;
            x-=lowbit(x);
        }
    }
    int get(int x)
    {
        int sum=0;
        while(x<=n)
        {
            sum+=Tree[x];
            x+=lowbit(x);
        }
        return sum;
    }
    int main()
    {
        int x,y;
        while(~scanf("%d",&n)&&n)
        {
            memset(Tree,0,sizeof(Tree));
            for(int i=0;i<n;i++)
            {
                scanf("%d%d",&x,&y);
                up(y,1);
                up(x-1,-1);
            }
            for(int i=1;i<=n;i++)
                printf("%d%c",get(i),i==n?'
    ':' ');
        }
        return 0;
    }
    View Code

    2.对于[x,y]区间,对第y+1位减1,第x位加1,之后向下统计

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=100000+10;
    int ans[maxn],Tree[maxn];
    inline int lowbit(int x) //计算2^k
    {
        return (x&-x);
    }
    void add(int x,int value)
    {
        for(int i=x; i<maxn; i+=lowbit(i))
            Tree[i]+=value;
    }
    int get(int x)
    {
        int sum=0;
        for(int i=x; i>0; i-=lowbit(i))
            sum+=Tree[i];
        return sum;
    }
    int main()
    {
        int n,x,y;
        while(~scanf("%d",&n)&&n)
        {
            memset(Tree,0,sizeof(Tree));
            for(int i=0;i<n;i++)
            {
                scanf("%d%d",&x,&y);
                add(x,1);
                add(y+1,-1);
            }
            for(int i=1;i<=n;i++)
                printf("%d%c",get(i),i==n?'
    ':' ');
        }
        return 0;
    }
    View Code
  • 相关阅读:
    淘宝镜像安装方法
    vue项目 title处的小图标
    vue生成环境 访问路径配置
    element ui icon不展示
    vue 使用element-ui实现table表单列展示与隐藏
    通过id获取元素控制滚动位置回到顶部
    复杂传值
    vue 中el-card点击事件失效解决
    滚动条隐藏 兼容
    【javascript/PHP】当一个JavaScripter初次进入PHP的世界,他将看到这样的风景
  • 原文地址:https://www.cnblogs.com/weimeiyuer/p/8358335.html
Copyright © 2020-2023  润新知