zoukankan      html  css  js  c++  java
  • HDU6186 2017广西邀请赛 CS Course (前缀和后缀)

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

    思路:题目要求的删除第q个数候所有数的 & | ^和,所以提前求出前缀和后缀,每次& | ^ 前i-1个和后i+1个即可。注意a^b^b=a;

    #include <iostream>
    #include <cstdio>
    
    using namespace std;
    
    const long long maxn=1e5+10;
    
    int n,q;
    long long f1[maxn],f2[maxn];
    long long e1[maxn],e2[maxn];
    long long a[maxn];
    
    int main()
    {
        while(~scanf("%d%d",&n,&q))
        {
            for(int i=1;i<=n;i++)
        {
            scanf("%lld",&a[i]);
        }
        f1[1]=f2[1]=a[1];
        long long ans=a[1];
        for(int i=2;i<=n;i++)
        {
            f1[i]=f1[i-1]&a[i];
            f2[i]=f2[i-1]|a[i];
            ans^=a[i];
        }
        e1[n]=e2[n]=a[n];
        for(int i=n-1;i>=1;i--)
        {
            e1[i]=e1[i+1]&a[i];
            e2[i]=e2[i+1]|a[i];
    
        }
        while(q--)
        {
            int x;
            cin>>x;
            if(x==1) printf("%lld %lld %lld
    ",e1[2],e2[2],a[x]^ans);
            else if(x==n) printf("%lld %lld %lld
    ",f1[x-1],f2[x-1],a[x]^ans);
            else printf("%lld %lld %lld
    ",f1[x-1]&e1[x+1],f2[x-1]|e2[x+1],a[x]^ans);
        }
        }
    
        return 0;
    }
  • 相关阅读:
    javascript概述
    linux系统编程(一)概述
    软件工程
    SQL
    数据结构和算法(一)概述
    cpp标准库
    c语言标准库
    c/c++概述
    编程语言的思考
    GCD学习
  • 原文地址:https://www.cnblogs.com/Fy1999/p/9093866.html
Copyright © 2011-2022 走看看