#P13905. 「KFCOI Round #2」宿命

    ID: 14496 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>线段树O2优化位运算分类讨论洛谷比赛

「KFCOI Round #2」宿命

题目背景

当你抛出一枚金币,那么结果是否已然注定?

假如终局在序章便已确定,那么过程究竟有什么意义?

如果宿命有形的话,它会是什么呢?

……

「是枷锁,是堕落,亦或是鸿运赐我......」

题目描述

给出一个长为 nn 的非负整数序列 AA,以及 mm 种自定义运算。每一种自定义运算的定义方式如下:

二元运算,两个数每一个二进制位分别进行一次“按位与、按位或、按位异或”中的指定一种位运算。

你需要实现两种操作:

  • 给出 l,r,op,xl,r,op,x,使得 AA 序列下标在 [l,r][l,r] 中的每一个数都与 xx 进行一次第 opop 种自定义运算。
  • 给出 l,r,opl,r,op,查询 AlA_lAA 序列下标在 [l+1,r][l+1,r] 中的每一个数都进行一次第 opop 种自定义运算后的结果。注意,你并不需要真的修改 AlA_l

输入格式

第一行三个整数 n,m,qn,m,q

第二行输入长为 nn 的非负整数序列 AA,下标从 11 开始编号。

接下来 mm 行,第 ii 行输入第 ii 种自定义运算,每一种运算的输入格式如下:

  • 给出一个长为 6363 的由 A O X\texttt{A O X} 组成的字符串,第 jj 个字符表示从低到高二进制 j1j-1 位进行的位运算种类,A O X\texttt{A O X} 分别代表按位与、按位或、按位异或操作。

接下来 qq 行,每行表示一次操作,操作有两种:

  • 1 l r op x,表示进行一次题目描述中给出的修改操作。
  • 0 l r op,表示进行一次题目描述中给出的查询操作。

输出格式

对于每一次查询操作,输出一行一个整数表示答案。

5 3 7
9 5 10 6 2
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0 1 3 3
1 1 3 2 9
1 4 5 1 5
1 3 5 3 5
1 2 5 2 7
0 4 4 1
0 2 4 2

6
7
15

提示

数据范围

本题采用捆绑测试

  • Subtask 1(10 pts):n103n\le10^3q103q\le10^3
  • Subtask 2(10 pts):n5×104n\le5\times10^4q5×104q\le5\times10^4
  • Subtask 3(10 pts):修改操作时,l=rl=r
  • Subtask 4(20 pts):m=1m=1
  • Subtask 5(20 pts):m=3m=3 且单个运算的字符全部相同。
  • Subtask 6(30 pts):无特殊限制。

对于所有数据:1n,m5×1051\le n,m\le 5\times10^51q1051\le q\le 10^50Ai,x<2630\le A_i,x<2^{63}1lrn1\le l\le r\le n1opm1\le op\le m