zoukankan      html  css  js  c++  java
  • hdu 6186

    题意:给出一个数列,q个询问,每个询问给出个下标,问除了该下标的数字,其他数字的and,or,xor是多少

    思路:求个前缀,后缀即可

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int N=1e5+10;
     5 
     6 int a[N],b[N],c[N];
     7 int a1[N],b1[N],c1[N];
     8 int d[N];
     9 
    10 int main(){
    11     int n,m;
    12    while(scanf("%d%d",&n,&m)!=EOF){
    13        // a[0]=b[0]=c[0]=0;
    14       //  a1[n+1]=b1[n+1]=c1[n+1]=0;
    15         for(int i=1;i<=n;i++){
    16             scanf("%d",&d[i]);
    17             if(i==1) {
    18                 a[i]=b[i]=c[i]=d[i];continue;
    19             }
    20             a[i]=d[i]&a[i-1];
    21             b[i]=d[i]|b[i-1];
    22             c[i]=d[i]^c[i-1];
    23         }
    24         for(int i=n;i>=1;i--){
    25              if(i==n) {
    26                 a1[i]=b1[i]=c1[i]=d[i];continue;
    27             }
    28             a1[i]=d[i]&a1[i+1];
    29             b1[i]=d[i]|b1[i+1];
    30             c1[i]=d[i]^c1[i+1];
    31         }
    32         int x;
    33         for(int i=1;i<=m;i++){
    34             scanf("%d",&x);
    35             if(x==1){
    36                 printf("%d %d %d
    ",a1[x+1],b1[x+1],c1[x+1]);continue;
    37             }
    38             if(x==n){
    39                 printf("%d %d %d
    ",a[x-1],b[x-1],c[x-1]);continue;
    40             }
    41             printf("%d ",a[x-1]&a1[x+1]);
    42             printf("%d ",b[x-1]|b1[x+1]);
    43             printf("%d",c[x-1]^c1[x+1]);
    44             printf("
    ");
    45         }
    46 
    47    }
    48 }
  • 相关阅读:
    MapReduce原理
    用redis构建分布式锁
    Python中类的特殊变量
    Python之元类
    python之WSGI与Guincorn
    一种消息和任务队列——beanstalkd
    LRU 算法
    extern、static、restrict、volatile 关键字
    bigtable原理
    Go的微服务库kite
  • 原文地址:https://www.cnblogs.com/hhxj/p/7459797.html
Copyright © 2011-2022 走看看