2022-05-26 AGC057 の A を解いた
AGC057 : AtCoder Grand Contest 057 の A を解いた。
- A - Antichain of Integer Strings
https://atcoder.jp/contests/agc057/tasks/agc057_a
- 提出: https://atcoder.jp/contests/agc057/submissions/31962141
R <= 10^9から単純に操作したり全件を前処理することはできないT <= 10^4から 1 件につきO(logR)くらいならいけそう- 解説 AC
- 解説を読めば解けるけど自分では難しい
f(x)を長さnのxを部分文字列として含む最小値と定義するとMIN(10x, 10^n+x)となる- 先頭に
1つけるか、末尾に0つけるかのうち小さい側
- 先頭に
f(x)は狭義単調増加になることから二分探索が使える (ここが難しい)L <= x <= Rでf(x) > Rとなる個数を求めると良い- それ以上右側に部分文字列として含むものがないものを選ぶ……ということだと思う
f(x) > Rを ok として範囲を求めるx = Rは okx = Lは試してみて ok ならR - L + 1個、 ng なら二分探索する
暑い。
bouzuya/rust-sandbox clap を入れてサブコマンドを定義している。もうすこしで使える状態かな。
今日のコミット。
- rust-atcoder 1 commit
- rust-sandbox 3 commits