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

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

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

 #include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 1e5+; int n, q;
int a[maxn], prea[maxn], suffa[maxn], preo[maxn], suffo[maxn], prex[maxn], suffx[maxn]; int main()
{
//freopen("in.txt","r",stdin);
while(~scanf("%d%d",&n,&q))
{
scanf("%d",&a[]);
prea[] = preo[] = prex[] = a[];
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
prea[i] = a[i] & prea[i-];
preo[i] = a[i] | preo[i-];
prex[i] = a[i] ^ prex[i-];
}
suffa[n] = suffo[n] = suffx[n] = a[n];
for(int i=n-;i>=;i--)
{
suffa[i] = a[i] & suffa[i+];
suffo[i] = a[i] | suffo[i+];
suffx[i] = a[i] ^ suffx[i+];
}
while(q--)
{
int pos; scanf("%d",&pos);
int ans1 = prea[pos-] & suffa[pos+];
int ans2 = preo[pos-] | suffo[pos+];
int ans3 = prex[pos-] ^ suffx[pos+];
if(pos==)
{
ans1 = suffa[pos+];
ans2 = suffo[pos+];
ans3 = suffx[pos+];
}
if(pos==n)
{
ans1 = prea[pos-];
ans2 = preo[pos-];
ans3 = prex[pos-];
}
printf("%d %d %d\n", ans1, ans2, ans3);
}
}
return ;
}

HDU 6186 CS Course(前缀+后缀)的更多相关文章

  1. HDU 6186 CS Course 前缀和,后缀和

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6186 题意:给了n个数,然后有q个查询,每个查询要求我们删掉一个数,问删掉这个数后整个序列的与值,或值 ...

  2. HDU 6186 CS Course【前后缀位运算枚举/线段树】

    [前后缀枚举] #include<cstdio> #include<string> #include<cstdlib> #include<cmath> ...

  3. HDU 6186 CS Course

    保存前缀后缀. 保存一下前缀和后缀,去掉第$i$个位置,就是$L[i-1]$和$R[i+1]$进行运算. #include<bits/stdc++.h> using namespace s ...

  4. HDU 6186 CS Course (连续位运算)

    CS Course Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  5. POJ 2752 (KMP 所有可能长度的前缀后缀) Seek the Name, Seek the Fame

    题意: 求一个字符串的相同前缀后缀的所有可能的长度,这里该字符串其本身也算自己的前缀和后缀. 分析: 我们知道next数组的性质是,该字符之前的字符串的最大相同前缀后缀. 既然知道了最大的,即next ...

  6. hdu 3553 Just a String (后缀数组)

    hdu 3553 Just a String (后缀数组) 题意:很简单,问一个字符串的第k大的子串是谁. 解题思路:后缀数组.先预处理一遍,把能算的都算出来.将后缀按sa排序,假如我们知道答案在那个 ...

  7. hdoj 2594 Simpsons’ Hidden Talents 【KMP】【求串的最长公共前缀后缀】

    Simpsons' Hidden Talents Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  8. HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化

    HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化 n个节点n-1条线性边,炸掉M条边也就是分为m+1个区间 问你各个区间的总策略值最少的炸法 就题目本身而言,中规中矩的 ...

  9. 1280 前缀后缀集合(map)

    1280 前缀后缀集合 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个数组包含N个正整数,其中有些是重复的.一个前缀后缀集是满足 ...

随机推荐

  1. 剑指offer——python【第29题】最小的K个数

    题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 思路 先排序后取数,排序可以用冒泡,插入,选择,快排,二分法等等, ...

  2. php 中的关系运算符

    php中的关系运算符有:&&(and).||(or).xor(亦或).!(非). 名称 关系 示例 结果 and 与 $x and $y 如果 $x 和 $y 都为 true,则返回 ...

  3. C和C指针小记(十五)-结构和联合

    1.结构 1.1 结构声明 在声明结构时,必须列出它包含的所有成员.这个列表包括每个成员的类型和名称. struct tag {member-list} variable-list; 例如 //A s ...

  4. Eclipse 00: 安装教程 + 汉化 + 简单创建java项目

    Java 安装教程(Eclipse) 目录: 要安装Java 要分两个步骤: 1.JDK的安装 2.Eclipse的安装 3.Eclipse汉化 4.Eclipse创建简单java项目 1和2的顺序不 ...

  5. ADB命令(全)

    当熟悉Shell命令的人使用adb是没有任何难度的,因为adb中绝大多少命令都是引用的shell命令 以下命令进行归类,红色部分字体是测试人员常用的adb命令 基础命令 1.启动adb服务 adb s ...

  6. nginx基本用法和HTTPS配置

    nginx作用讲解:1.反向代理:需要多个程序共享80端口的时候就需要用到反向代理,nginx是反向代理的一种实现方式.2.静态资源管理:一般使用nginx做反向代理的同时,应该把静态资源交由ngin ...

  7. 解决adb:error: unknown host service

    1.在使用adb命令跑程序时出现adb: error: failed to get feature set: unknown host service 输入adb shell 时提示error: un ...

  8. 对stm32寄存器的理解(个人理解,大神轻喷)

    学习了stm32有一年了,今天想来写写自己对寄存器的理解,帮助那些有志学习stm32的朋友们少走一些弯路. ---------------------------------------------- ...

  9. ARIMA模型总结

    时间序列建模基本步骤 获取被观测系统时间序列数据: 对数据绘图,观测是否为平稳时间序列:对于非平稳时间序列要先进行d阶差分运算,化为平稳时间序列: 经过第二步处理,已经得到平稳时间序列.要对平稳时间序 ...

  10. 监听器&上传下载&I18N

    监听器(Listener) 监听Java对象 的方法调用和属性改变() web的一个组件 事件驱动编程:事件源,事件名称,事件响应函数,事件对象 以后在Spring中的配置 WEB中有哪些监听器?  ...