histcat

histcat

修正

タイトル#

長さ $n$ の列が与えられ、第 $i$ 番目の要素のインデックスは $i$、値は $a_i$

現在 $q$ 回の操作があり、毎回区間 $[l,r]$ が与えられ、その区間の要素の合計を求め、区間内のすべての要素の値を $0$ に変更する

すべての操作の答えの排他的論理和を出力する必要があります

$n, q$ が非常に大きいため、別の読み込み方法を提供します

$z$ が与えられ、その型は unsigned int であり、$n$ 回 $gen ()$ 関数を呼び出して列を取得し、さらに $2n$ 回呼び出して各操作の $l,r$ を取得する必要があります。具体的なコードは以下の通りです:

$40%$ のデータに対して、$n, q\le 10^6$ を満たします

$100%$ のデータに対して、$n, q\leq 10^7$ を満たします

解答#

私は試験中に 1 時間考えても思いつかなかったことを教えません

セグメントツリーを考え始めましたが、データ範囲を見て、完全にタイムアウトしました

その後、どうすればよいかわからなくなりました

クエリが終わったら削除するので、数をクエリした後はもう気にしなくて良いです

気にしない数を管理するために、最初に $n$ 個の並列集合ツリーを開くことを考えます

クエリの際に、ついでに管理します($l$ から $r$ の fa を fa[r + 1] に指し示します)

(実際にはリストを使って管理しても通過できます)

私は本当に下手です

コード#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。