CS Course

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total
Submission(s): 0    Accepted Submission(s): 0

Problem Description
Little A has come to college and majored in Computer
and Science.

Today he has learned bit-operations in Algorithm Lessons,
and he got a problem as homework.

Here is the problem:

You are
giving n non-negative integers a1,a2,⋯,an

, and some queries.

A query only contains a positive integer p, which
means you
are asked to answer the result of bit-operations (and, or, xor) of
all the integers except ap

.

 
Input
There are no more than 15 test cases.

Each test
case begins with two positive integers n and p
in a line, indicate the number
of positive integers and the number of queries.

2≤n,q≤105

Then n non-negative integers a1,a2,⋯,an

follows in a line, 0≤ai≤109

for each i in range[1,n].

After that there are q positive integers p1,p2,⋯,pq

in q lines, 1≤pi≤n

for each i in range[1,q].

 
Output
For each query p, output three non-negative integers
indicates the result of bit-operations(and, or, xor) of all non-negative
integers except ap

in a line.

 
Sample Input
3 3
1 1 1
1
2
3
 
Sample Output
1 1 0
1 1 0
1 1 0
 
 
题解:这道题目  要注意的是   与   或   异或  的操作    不受前后循序的影响的 
我是使用了6个数组   保存了数组与   或   异或的前缀和   和   后缀    
 #include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <cstring>
#include <math.h>
using namespace std;
#define MAXN 0xffffff
int a[];
int qy[],hy[];//与的前缀 后缀
int qh[],hh[];//或的前缀 后缀
int qyh[],hyh[];//异或的
int main()
{
// & | ^
int n,q;
while(~scanf("%d%d",&n,&q))
{
scanf("%d",&a[]);
qy[]=qh[]=qyh[]=a[];
for(int i=; i<=n; ++i)
{
scanf("%d",&a[i]);
qy[i]=a[i]&qy[i-];
qh[i]=a[i]|qh[i-];
qyh[i]=a[i]^qyh[i-];
}
hy[n]=hh[n]=hyh[n]=a[n];
// printf("%d ",a[n]);
for(int i=n-; i>; --i)
{
hy[i]=a[i]&hy[i+];
hh[i]=a[i]|hh[i+];
hyh[i]=a[i]^hyh[i+];
}
/* for(int i=1; i<=n; ++i)
{
printf("%d ",hh[i]);
}*/
while(q--)
{
int m;
scanf("%d",&m);
// printf("%d %d %d %d %d %d\n",qy[m-1],hy[m+1],qh[m-1],hh[m+1],qyh[m-1],hyh[m+1]);
if(m==)
{
printf("%d %d %d\n",hy[m+],hh[m+],hyh[m+]);
}
else if(m==n)
{
printf("%d %d %d\n",qy[m-],qh[m-],qyh[m-]);
}
else
{
printf("%d %d %d\n",qy[m-]&hy[m+],qh[m-]|hh[m+],qyh[m-]^hyh[m+]);
} }
}
return ;
}

2017ACM/ICPC广西邀请赛 1005 CS Course的更多相关文章

  1. 2017 ICPC 广西邀请赛1005 CS Course

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

  2. 2017ACM/ICPC广西邀请赛-重现赛1005 CS course

    2017-08-31 16:19:30 writer:pprp 这道题快要卡死我了,队友已经告诉我思路了,但是做题速度很缓慢,很费力,想必是因为之前 的训练都是面向题解编程的缘故吧,以后不能这样了,另 ...

  3. 2017ACM/ICPC广西邀请赛 CS Course

    题意:删除指定数字,求剩下数字的与或非值 解法:保存一下前缀和后缀 #include <iostream> #include <stdio.h> #include <ve ...

  4. 2017ACM/ICPC广西邀请赛-重现赛

    HDU 6188 Duizi and Shunzi 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6188 思路: 签到题,以前写的. 实现代码: #inc ...

  5. 2017ACM/ICPC广西邀请赛-重现赛(感谢广西大学)

    上一场CF打到心态爆炸,这几天也没啥想干的 A Math Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/3 ...

  6. 2017ACM/ICPC广西邀请赛-重现赛 1007.Duizi and Shunzi

    Problem Description Nike likes playing cards and makes a problem of it. Now give you n integers, ai( ...

  7. 2017ACM/ICPC广西邀请赛-重现赛 1010.Query on A Tree

    Problem Description Monkey A lives on a tree, he always plays on this tree. One day, monkey A learne ...

  8. 2017ACM/ICPC广西邀请赛-重现赛 1004.Covering

    Problem Description Bob's school has a big playground, boys and girls always play games here after s ...

  9. HDU 6191 2017ACM/ICPC广西邀请赛 J Query on A Tree 可持久化01字典树+dfs序

    题意 给一颗\(n\)个节点的带点权的树,以\(1\)为根节点,\(q\)次询问,每次询问给出2个数\(u\),\(x\),求\(u\)的子树中的点上的值与\(x\)异或的值最大为多少 分析 先dfs ...

随机推荐

  1. 通过vue-cli搭建vue项目

    一.搭建环境 安装node.js 从node.js官网下载并安装node,安装过程很简单,一路“下一步”就可以了.安装完成之后,打开命令行工具(win+r,然后输入cmd),输入 node -v,如下 ...

  2. 【Selenium-WebDriver实战篇】Eclipse上的maven使用JsonObject时,添加依赖后无法自动下载相应的jar包

    ==================================================================================================== ...

  3. CI持续集成 -- git 与 gitlab

    版本控制系统概述 git Git基本概述 Git是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容. Git安装配置 #安装Git yum install -y git ...

  4. 图书检索系统C版本

    原创,转载请注明出处! 程序具有一下功能窗口界面1,Input输入(读入文件,所有的文件都读入)2,Output输出(检验是否读取正确,从结构体数组读入)3,Length统计(此文件里有110本图书) ...

  5. LOJ P10013 曲线 题解

    每日一题 day38 打卡 Analysis 这道题运用的是三分,就是说具有一定的单调性,找最大最小值,然后和二分基本类似,就是说特性就是说当前两个点比较,较优的点和最优点在相对了较差点的同侧,就是说 ...

  6. asp.net Web 项目的文件/文件夹上传下载

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  ...

  7. LSTM的结构

  8. 安卓入门教程(十四)-菜单,ActionBar,对话框

    已经发表个人公众号 菜单类型 选项菜单(OptionMenu) 子菜单(SubMenu) 上下文菜单(ContextMenu) 方法: public boolean onCreateOptionsMe ...

  9. C博客作业03——函数

    0.展示PTA总分 截图展示: 1.本章学习总结 1.1学习内容总结 (a)函数的定义 1)函数是一个完成特定工作的独立程序模块,包括库函数和自定义函数两种,scanf(),printf()等为库函数 ...

  10. 获取页面scroll高度

    记录一下获取 scroll 高度的方法 经实际测试: document.body.scrollTop 在 chrome 下会返回0. 所以 document.documentElement.scrol ...