ABC397 F - Variety Split Hard
問題概要 問題へのリンク 整数 $N$ と,長さ $N$ の整数列 $A = (A_0, \ldots, A_{N - 1})$ が与えられる. $A$ を 2箇所で区切って,3個の空でない連続する部分列に分解するとき, おのおのの部分列に含まれる数の種類数の和の最大値を求めよ. 制約 $3 \leq N \leq 3\times10^5$,$1 \leq A_i \leq N$ 解 公式解説 略解.click to open $L_i := (A_0, \ldots, A_{i - 1})$ に含まれる種類数 $R_i := (A_i, \ldots, A_{N - 1})$ に含まれる種類数 $dp[i][j] := (A_0, \ldots, A_{j - 1})$ と $(A_j, \ldots, A_{i - 1})$ に含まれる種類数の和 ($j \in [0, i)$) とする.求める値は $\max_i (R_i + \max_j(dp[i][j]))$....