概要
問題文 → ■
公式解説 → なさそう?
自分の提出 → ■
解法
区間 が 個与えられて、それぞれ選ぶ・選ばないで 通りの選択肢があります。すべての点が 枚以上の区間に被覆されるような選び方を数え上げる問題です。
区間を 昇順でソートしておいて、その順に区間を置くかどうか決めていくことを考えます。
区間 を置く時点では、 部分が 枚以上の区間に覆われている必要があります。その条件のもと、区間 を置いた直後の状態は、ある に対して
- 部分は 枚以上に覆われている
- 部分はちょうど 枚に覆われている
- 部分はちょうど 枚に覆われている
が成り立ちます。実際、 の部分は 枚以上で覆われてということでした。これまで置いた区間はすべて左端が 以下であるため、 部分の被覆枚数は について単調減少です。
この状態 に対する数え上げを として、ひとつずつ区間を置く・置かない場合の遷移を計算していくことにより、本問題は (ソート 時間を除き) 時間で解くことができます。
の制約が大きいですが、はじめに座標圧縮しておくことで、 の場合に帰着できます。したがって、座標圧縮後に上述の dp を計算することで、本問題は 時間で解くことができます。