No.3792 XOR^2 Sum Query
レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限
: 1024 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 6
作問者 :
hiro1729
/ テスター :
DeltaStruct
👑
binap
👑
AngrySadEight
/ テストしたAI :
claude-opus-5-5
タグ : / 解いたユーザー数 6
作問者 :
DeltaStruct
👑
問題文最終更新日: 2026-11-05 21:18:26
注意
この問題では高速な言語の使用を推奨します。
問題文
長さ $N$ の整数列 $A$ が与えられます。$A$ の要素は $0$ 以上 $2^{30}$ 未満です。以下の $2$ 種類のクエリを $Q$ 個処理してください。
- クエリ $1$ : 整数 $p,x \ (1 \le p \le N, 0 \le x < 2^{30})$ が与えられます。$A_p$ を $x$ に変更してください。
- クエリ $2$ : 整数 $1 \le L \le R \le N$ が与えられます。$(A_L, A_{L+1}, \ldots, A_R)$ の連続とは限らない空でない部分列 $2^{R-L+1}-1$ 通りに対する総ビット単位 xor の $2$ 乗の総和を $998244353$ で割った余りを求めてください。
総ビット単位 xor とは?
非負整数 $A, B$ に対して、それらの xor を $A \oplus B$ と表し、以下のように定義します。- $A \oplus B$ を二進表記した際の $2^k (k \ge 0)$ の位の数は $A, B$ を二進表記した際の $2^k$ の位の数のうち一方のみが $1$ ならば $1$ 、そうでなければ $0$ である。
制約
- $1 \le N \le 5 \times 10^5$
- $0 \le A_i < 2^{30} (1 \le i \le N)$
- $1 \le Q \le 5 \times 10^5$
- クエリ $1$ のとき、$1 \le p \le N, 0 \le x < 2^{30}$
- クエリ $2$ のとき、$1 \le L \le R \le N$
- クエリ $2$ が少なくとも $1$ つ含まれる
入力
$N$ $Q$ $A_1$ $A_2$ $\ldots$ $A_N$ $query_1$ $query_2$ $\vdots$ $query_Q$
各クエリ $query_i$ は以下の形式で与えられます。
- クエリ $1$ のとき
1 $p$ $x$
- クエリ $2$ のとき
2 $L$ $R$
出力
クエリ $2$ に対する答えを順番に $1$ 行ずつ出力してください。
サンプル
サンプル1
入力
8 6 2 0 2 6 1 1 0 6 2 3 5 2 1 7 1 4 2 2 8 8 1 3 9 2 2 6
出力
140 2240 36 1520
$1$ 番目のクエリについて、答えは以下のように計算されます。
- $(2,6,1)$ の部分列 $(2)$ に対して、総 xor の $2$ 乗は $2^2=4$ です。
- $(2,6,1)$ の部分列 $(6)$ に対して、総 xor の $2$ 乗は $6^2=36$ です。
- $(2,6,1)$ の部分列 $(1)$ に対して、総 xor の $2$ 乗は $1^2=1$ です。
- $(2,6,1)$ の部分列 $(2,6)$ に対して、総 xor の $2$ 乗は $4^2=16$ です。
- $(2,6,1)$ の部分列 $(2,1)$ に対して、総 xor の $2$ 乗は $3^2=9$ です。
- $(2,6,1)$ の部分列 $(6,1)$ に対して、総 xor の $2$ 乗は $7^2=49$ です。
- $(2,6,1)$ の部分列 $(2,6,1)$ に対して、総 xor の $2$ 乗は $5^2=25$ です。
これらの総和は $140$ です。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。