33OJ
登录 注册

#P17667. [IO 2025 #3] 帕格斯利的神秘实验

[IO 2025 #3] 帕格斯利的神秘实验

题目描述

为了不落后于姐姐,帕格斯利也决定在亚当斯家族宅邸的一间昏暗实验室中进行一个奇怪的实验。这一次,他收集了一个由 nn 个数构成的数组。据他所说,每个数中都封印着一小片家族的疯狂。

实验中,帕格斯利发现了某种被他称为“混沌平衡”的现象:数组中的一些元素具有神秘的和谐。如果将某个元素左边的所有元素按位异或,再将它右边的所有元素按位异或,两者的结果恰好相同。他将这样的元素称为“混沌平衡点”。这里,xor 表示按位异或运算;空前缀和空后缀的异或值都为 00。

帕格斯利相信,正是这些元素让亚当斯家族的宅邸免于崩塌。现在,他希望能够快速知道还剩多少个这样的元素,因为实验经常以无法预料的爆炸告终,数组中的数也会不断变化!

帕格斯利虽然很有天赋,但距离姐姐的水平还差得远,因此他请你编写程序,处理以下两种询问:

  • 1 i x:将数组下标为 ii 的元素替换成 xx。下标从 00 开始计数,保证这个下标对应的元素存在;
  • 2:询问当前数组中混沌平衡点的数量。

请帮助帕格斯利,否则平衡一旦打破,便没有什么能够阻止宅邸崩塌了!

输入格式

第一行包含一个整数 nn,表示数组中数的数量,满足 1≤n≤2⋅1051\le n\le 2\cdot 10^5。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n,表示数组的元素,满足 0≤ai≤1090\le a_i\le 10^9。这里的 a1,…,ana_1,\ldots,a_n 依次对应操作中的下标 0,…,n−10,\ldots,n-1。

第三行包含一个整数 qq,表示询问的数量,满足 1≤q≤2⋅1051\le q\le 2\cdot 10^5。

接下来 qq 行,每行包含一条询问。每行首先给出一个整数 kk,表示询问类型,满足 1≤k≤21\le k\le 2。

如果 k=1k=1,这一行接下来还有两个整数 i,vi,v,分别表示需要替换的元素下标和替换后的值,满足 0≤i<n0\le i<n,0≤v≤1090\le v\le 10^9。

如果 k=2k=2,这一行没有其他整数。

输出格式

对于每个第二类询问,输出一行一个整数,表示当前数组中,左侧前缀的异或值等于右侧后缀的异或值的位置数量。

10
0 1 2 3 4 5 6 7 8 13
2
1 9 9
2
1