CodeForces Round #431 (Div.2) E - Goodbye Souvenir
CodeForces Round #431 (Div.2) E - Goodbye Souvenir についての記事です. 問題へのリンク https://codeforces.com/contest/849/problem/E 経緯 Yoika さんが主催している Morningforces というバーチャルコンテスト で出て,解けませんでした. 公式解説 を読んだのですが,最後に出てくる座標圧縮云々がよく分かりませんでした. 問題概要 整数列 $a = a_1, \ldots, a_k $ に対して,$m(a)$ を,$a$ に現れる各数 $x$ に対して,$x$ が最後に現れる位置と最初に現れる位置との差の総和として定義する.例えば,$m(1, 2, 3, 1, 3, 2, 1) = (7-1) + (6-2) + (5- 3) = 12$.最初に長さ n の整数列 a が与えられる.各要素は1以上n以下.次の2種類のクエリ (全部で$m$個) を処理せよ.$ 1 \leq n, m \leq 100,000$. p, x が与えられて,aのp番目の要素をxに書き換える. l, r が与えられて,$ m(a[l:r]) $ を求める. 解法 ということで,実装手段を除いては公式解説をなぞっています....