zoukankan      html  css  js  c++  java
  • HDU 6186 CS Course(前缀+后缀)

    http://acm.hdu.edu.cn/showproblem.php?pid=6186

    题意:
    给出n个数,共有n次询问,每次询问给出一个数p,求除去第p个数后的n-1个数的&、|、^值。

    思路:
    分别计算出&、|、^的前缀和后缀,将前缀和后缀相计算即可。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 using namespace std;
     5 const int maxn = 1e5+5;
     6 
     7 int n, q;
     8 int a[maxn], prea[maxn], suffa[maxn], preo[maxn], suffo[maxn], prex[maxn], suffx[maxn];
     9 
    10 int main()
    11 {
    12     //freopen("in.txt","r",stdin);
    13     while(~scanf("%d%d",&n,&q))
    14     {
    15         scanf("%d",&a[1]);
    16         prea[1] = preo[1] = prex[1] = a[1];
    17         for(int i=2;i<=n;i++)
    18         {
    19             scanf("%d",&a[i]);
    20             prea[i] = a[i] & prea[i-1];
    21             preo[i] = a[i] | preo[i-1];
    22             prex[i] = a[i] ^ prex[i-1];
    23         }
    24         suffa[n] = suffo[n] = suffx[n] = a[n];
    25         for(int i=n-1;i>=1;i--)
    26         {
    27             suffa[i] = a[i] & suffa[i+1];
    28             suffo[i] = a[i] | suffo[i+1];
    29             suffx[i] = a[i] ^ suffx[i+1];
    30         }
    31         while(q--)
    32         {
    33             int pos; scanf("%d",&pos);
    34             int ans1 = prea[pos-1] & suffa[pos+1];
    35             int ans2 = preo[pos-1] | suffo[pos+1];
    36             int ans3 = prex[pos-1] ^ suffx[pos+1];
    37             if(pos==1)
    38             {
    39                 ans1 = suffa[pos+1];
    40                 ans2 = suffo[pos+1];
    41                 ans3 = suffx[pos+1];
    42             }
    43             if(pos==n)
    44             {
    45                 ans1 = prea[pos-1];
    46                 ans2 = preo[pos-1];
    47                 ans3 = prex[pos-1];
    48             }
    49             printf("%d %d %d
    ", ans1, ans2, ans3);
    50         }
    51     }
    52     return 0;
    53 }
  • 相关阅读:
    013开发板系统安装准备
    012开发板串口连接
    011OK6410开发板介绍
    010GCC程序编译
    009Linux密码故障排除
    vue 中的solt的用法
    vue solt的应用场景
    Typescript 用接口模拟ajax请求
    Typescript方法重载实现系列二
    Typescript中方法重载的实现
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/9309683.html
Copyright © 2011-2022 走看看