🙂
JavaScriptでABC430(A-C)
新ジャッジ回でございます
A - Candy Cookie Law
先に
不等号の向きで混乱して30秒くらい固まるのをやめたい
1分29秒 AC!
B - Count Subgrid
Bは愚直……だけど、実装が少々だるい
パターン重複を外すのはSetでやればよくて、[["#", "."], ["#", "#"]]→"#.##"みたいに連結順決めてパターンを1つのstringで表せばいい
あとはfor文かいて全パターンに対応するstringを作ればいい なんと4重for
8分36秒 AC!
C - Truck Driver
たぶん想定解法は尺取法な気がします
……で、久しく尺取を書いてなかったので尺取を調べ直してたんですが、尺取使えるときってだいたい二分探索も使えるよな〜って思い出したので二分探索で書くことにしました。判断が遅い。
「"a"・"b"がそれぞれ何個含まれているか」を表す配列をつくって、左端leftを固定して以下2つをlower_bound相当のもので求めて減算すると「leftを固定したときのとれるrightの数」が出せます。あとは各leftについて足すだけ。
-
S[left]からS[right]の"a"の個数がA以上になる最小のright -
S[left]からS[right]の"b"の個数がB未満になる最大のright
58分19秒 AC!
D-G
- D: 差分更新なのはわかる 問題はどうやって両隣の人を見つけるかで……
- E: 環状に文字列を並べてぐるぐる回したいんですけど何をどうやればいいんですか
Perfomance
- perf : 898
- レート変化 : 844 → 850 (+6)
感想
C問題もうちょっと早く解きたかったような気がします さっさと二分探索を書きなさいよ
DとEは解説読む限りI don't know this solutionだったので精進かな〜
過去のABCも似たような記事を書いています。よければそちらもどうぞ。
| xx1 | xx2 | xx3 | xx4 | xx5 | xx6 | xx7 | xx8 | xx9 | xx0 | |
|---|---|---|---|---|---|---|---|---|---|---|
| 40x | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | |
| 41x | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 |
| 42x | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 |
Discussion