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