zoukankan      html  css  js  c++  java
  • 按钮控制彩灯实验 CSU

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    const int N=100010;
    int a[N];
    int tr[N];
    int n,m;
    int l,r;
    int lowbit(int x)
    {
        return x& -x;
    } 
    void add(int x,int c)
    {
        for(int i=x;i<=n;i+=lowbit(i))
            tr[i]+=c;
    }
    int sum(int x)
    {
        int res=0;
        for(int i=x;i;i-=lowbit(i))
            res+=tr[i];
        return res;
    }
    int main()
    {
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            memset(tr,0,sizeof tr);
            for(int i=1;i<=n;i++)
                scanf("%d",&a[i]);
            while(m--)
            {
                scanf("%d%d",&l,&r);
                add(l,1);
                add(r+1,-1);
            }
            for(int i=1;i<n;i++)
            {
                if(sum(i)%2==1)
                {
                    if(a[i]==0)
                        printf("1 ");
                    else
                        printf("0 ");
                }
                else
                    printf("%d ",a[i]);
            }
            if(sum(n)%2==1)
            {
                if(a[n]==0)
                    printf("1
    ");
                else
                    printf("0
    ");
            }
            else
                printf("%d
    ",a[n]);
        }
        return 0;
    }
  • 相关阅读:
    学习进度表
    第十三周
    硅谷之谜
    第12周
    我的成就故事
    学习进度表
    第8周总结
    测试作业
    第六周周总结
    问卷调查
  • 原文地址:https://www.cnblogs.com/QingyuYYYYY/p/12285487.html
Copyright © 2011-2022 走看看