#44026. 最强之剑
最强之剑
暂无测试数据。
作为被异世界召唤的勇者,你的任务就是打败大魔王。为了铸就能够打败大魔王的最强之剑,你收集了 $n$ 种原材料。所有原材料从 $1$ 到 $n$ 依次编号,编号为 $i$ 的原材料有一个特征值 $a_i$ 和强度 $b_i$。
用 $S$ 表示一个原材料的集合,定义 $xor(S)$ 为 $S$ 中所有原材料的特征值做异或运算的结果,$sum(S)$ 则表示 $S$ 中所有原材料的强度之和。
一个原材料集合 $S$ 能够铸就一把剑,当且仅当它不存在一个子集 $S'$ 使得 $xor(S')=0$,而用 $S$ 中的原材料铸就的剑,强度为 $sum(S)$。
现在有 $q$ 次询问或修改,询问就是给出一段区间 $[l,r]$,询问在编号为 $l,l+1,...,r-1,r$ 的原材料中选出一个子集,能铸造的剑的最大强度是多少(只询问,不改变序列信息);修改就是修改某种原材料的特征值和强度。
输入格式
第一行,一个正整数 $n$
接下来 $n$ 行,每行两个数字,第 $i$ 行的两个数字依次为 $a_i$、$b_i$
接下来一行,一个正整数 $q$
接下来 $q$ 行,每行的第一个数字是 $type$,如果 $type=0$ 表示一次查询,接下来给出两个数字,分别对应 $l,r$,表示一次在区间 $[l,r]$ 上的查询。如果 $type=1$ 表示一次修改,接下来给出三个数字,分别对应 $x,a,b$,表示把编号为 $x$ 的原材料的特征值修改为 $a$,强度修改为 $b$。
输出格式
对每个询问输出一行,表示用查询区间中的原材料所能铸就最强之剑的强度。
数据范围
对于前 $20\%$ 的数据,$n,q \leq 5$
对于前 $40\%$ 的数据,$n\leq 20$,没有修改操作
对于前 $60\%$ 的数据,$n,q \leq 1000$
对于 $100\%$ 的数据,$n\leq 10^5, q \leq 10^4$,$1\leq a_i,b_i \leq 10^9$
对于后 $60\%$ 的数据,修改与查询的出现概率都是 $\frac{1}{2}$
5
1 2
2 1
3 2
4 1
5 2
5
0 1 5
0 2 4
0 3 5
1 5 5 10
0 1 5
6
4
5
14