Oj.Nbdp.Net
初赛题库
问题
状态
排名
团队
题解
课程
Login
问题 5387 --和或异或
5387: 和或异或
警告!
题目
状态
题解
题目描述
小明找来了一个 $2^n$ 长度的数组。它第一次先对所有相邻两个数执行 `|` 操作,得到一个 $2^{n-1}$ 长度的数组。也就是说,如果一开始时 $a[1],a[2],\cdots,a[2^n]$,执行操作后,会得到 $a[1]|a[2]$,$a[3]|a[4], \cdots,a[2^n-1]|a[2^n]$。 第二次操作,小明会将所有相邻两个数执行 `^` 操作,得到一个 $2^{n-2}$ 长度的数组,假如第一次操作后的数组是 $b[1],b[2],\cdots,b[2^{n-1}]$,执行操作后会变成 $b[1] \hat{ } b[2]$,$b[3] \hat{ } b[4],\cdots,b[2^{n-1}-1] \hat{ } [b^{n-1}]$。 第三次操作,小明仍然将执行 `|` 操作,第四次小明执行 `^` 操作。如此交替进行。 小明还会执行 $Q$ 次修改操作。每次修改原先的 $2^n$ 长度的数组中的某一个数,对于每次修改操作,你需要输出 $n$ 次操作后(最后一定只剩下唯一一个数)剩下的那个数是多少。
输入
第一行两个数 $n,Q$。 接下来一行 $2^n$ 个数 $a_i$ 表示一开始的数组。 接下来 $Q$ 行,每行两个数 $x_i,y_i$,表示小明这次的修改操作是将 $a_{x_i}$ 改成 $y_i$。
输出
$Q$行,表示每次修改操作后执行 $n$ 次操作后剩下的那个数的值。
样例输入输出
输入#1
复制
2 4 1 6 3 5 1 4 3 4 1 2 1 2
输出#1
复制
1 3 3 3
提示
【样例解释】 第一次修改,$4,6,3,5\to 6,7\to 1$。 第二次修改,$4,6,4,5\to 6,5 \to 3$。 第三次修改,$2,6,4,5 \to 6,5 \to 3$。 第四次修改,$2,6,4,5 \to 6,5\to 3$。 【数据范围】 对于 $30\%$ 的数据,$n \leq 17$,$Q=1$。 对于另外 $20\%$ 的数据,$n \leq 10$,$Q \leq 1000$。 对于另外 $30\%$ 的数据,$n \leq 12$,$Q \leq 100000$。 对于 $100\%$ 的数据,$1 \leq n \leq 17$,$1 \leq Q \leq 10^5$,$1 \leq x_i \leq 2^n$,$0 \leq y_i \leq 2^{30}$,$0 \leq a_i \leq 2^{30}$。
发表题解
序号
标题
作者
发表时间
费用
订购数
操作
题目信息
提交
难度
未评定
标签
点击显示
if ($pr_flag) { ?>
递交数
1
已通过
1
} ;?>
通过率
100%
时间限制
1 秒
内存限制
128 MB
来源
收藏
标签云
模拟
数学与数论
动态规划
贪心
字符串
排序
枚举
数组与串
深搜
高精度
循环结构
递推
递归
二分三分
宽搜
背包
质数
线段树
分治
N进制
图论
队列
最短路
堆
树
并查集
栈
状态压缩
分支结构
几何
博弈论
生成树
顺序结构
离散化
hash表
位运算
单调队列
树状数组
KMP
字典树
二分图
数学期望
AC自动机
树链剖分
差分约束
数位动态规划
函数与过程
网络流
单调栈
前缀和