QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 512 MB Total points: 100

# 10131. 《十字神名的预言者》宏伟(色彩)

Statistics

维护一个长为 $n$,由 $n$ 位二进制数组成的序列 $a$,支持 $m$ 次操作分为两种:

  • 1 p val,将 $a_p$ 修改为 $val$。
  • 2 p,查询从 $a[1,p]$ 中选出一个子序列,能得到的异或和最大值。

本题强制在线。

输入格式

第一行两个整数 $n,m$。

接下来 $n$ 行,每行一个 $n$ 位二进制数,描述 $a$ 序列。

接下来 $m$ 行,每行描述一次操作,要么为 1 p' val' 要么为 2 p'

记这一次操作前所有询问答案的异或和为 lastans,那么真实的 $p=(p'-1+lastans) \bmod n+1$,真实的 $val=val' \oplus lastans$。

输出格式

对于每次询问操作,输出一个 $n$ 位二进制数表示答案。

样例数据

样例 1 输入

5 5
01010
11100
10011
01001
00011
2 5
2 1
1 1 00101
2 5
2 3

样例 1 输出

11111
11100
11100
11111

样例 2 输入

10 10
1010101101
0110010101
1100000110
1010010110
0111110111
0111111011
0111101000
1001011011
1100100010
1001000001
1 8 0000010011
2 7
1 4 0010101111
2 4
2 3
1 10 1100001100
2 8
1 5 0100111001
2 5
2 4

样例 2 输出

1101111110
1111111100
1100111000
1100111000
1110110000
1100111000

子任务

Idea:chenxinyang2006,Solution:chenxinyang2006,Code:chenxinyang2006,Data:chenxinyang2006

对于 $100\%$ 的数据:$1 \le n \le 2000,1 \le m \le 4000$,修改操作至多 $n$ 次。$0 \le a_i,val' < 2^n$,$1 \le p' \le n$。