AGC020 B - Ice Rink Game
初めに
atcoder.jp 解けなかったので
敗因
例えば は必ず 2 でないといけなくて, は 2, 3 でないといけなくてみたいなこと( -1 のときはどうなるのかを)を考えていました. ( -1 になるときを中心に考察を進めても難しいので) から線形にできる方法を考えるべきでした.
解法
各ラウンド直後の最小, 最大をもっておけばそのひとつ前が計算できます. です. 具体的には, を i ラウンド後の最小 / 最大値としたときに,
が成り立ちます. atcoder.jp
別解
( がつくけど)二分探索でも通ります. 「広義単調増加関数同士の合成関数もまた広義単調増加関数になる」そうです(知りませんでした, これって自明ですか? よく考える余地があるかも?). そうすると Editorial での が広義単調増加関数になるので二分探索ができます, と. なるほど... 最小最大で分けて二分探索をして逆転してしまえば -1 . 賢いですね. atcoder.jp
終わりに
よくかんがえれば dp なのか, むずかしい...