🤔

JavaScriptでABC408(A-C)

に公開

https://atcoder.jp/contests/abc408

A - Timeout

https://atcoder.jp/contests/abc408/tasks/abc408_a

肩を叩かれた時間を(0秒含めて)並べて、隣接する肩叩きタイムがすべてS秒以下ならおk

入力の受け取りがA問題にしては面倒ですね、150点な理由はそれでしょうか

https://atcoder.jp/contests/abc408/submissions/66298267

2分57秒 AC!

B - Compression

https://atcoder.jp/contests/abc408/tasks/abc408_b

B問題は言われた通りやるの法則

「重複を除いて」 → Set
「小さい順に」 → Array#sort()

強いてあげるなら、JavaScriptで数値の昇順ソートをするときはcompareFnを指定しなきゃいけないくらいでしょうか
Cosenseに書いたのでそっちを見てください

https://atcoder.jp/contests/abc408/submissions/66302210

4分44秒 AC!

C - Not All Covered

https://atcoder.jp/contests/abc408/tasks/abc408_c

「守ってくれる砲台が最も少ない城壁」を守っている砲台を狙って破壊するのが最小になるので、「守ってくれる砲台が最も少ない城壁は、いくつの砲台に守られているか?」に問題を読み替えます

xの初期値を0として、iを1から順番に、「守備範囲の左端がiな砲台の数をxに足す → xの数を記録 → 守備範囲の右端がiな砲台の数をxから引く」をしたときの、記録されたxの最小値があれば良さそう。
すべてを記録しなくても最小値だけ記録すればいいので、「これまでのxの最小値」をInfinityで初期化しておいて下回ったら更新すればいいと思います。
この手法なんて言うんでしょう、尺取法なのか……? これがimos法なんですね

https://atcoder.jp/contests/abc408/submissions/66316133

12分22秒 AC!

D-G

D - Flip to Gather

https://atcoder.jp/contests/abc408/tasks/abc408_d

一旦ランレングス圧縮をして、左右端の0は取っ払っておく
で、なんかうまい方法があるんだろうな〜と試行錯誤していました

https://atcoder.jp/contests/abc408/submissions/66342393
https://atcoder.jp/contests/abc408/submissions/66349064

サンプルケース通るのにWAになるとき、普段のデバッグができなくて辛いですね
結局わかりませんでした

解説を見ました 数学回なんですかこれ まじか

E-G

チラ見しましたが無理そうなので諦め


Perfomance

  • perf : 832
  • レート変化 : 764 → 771 (+7)

感想

D400が解けないとボロボロですね……
Cまでがたぶん過去最速だったのでレート下がってはいないものの気分的には負け

どこかでperf1000以上が出せれば入緑できるので頑張りたい!次回決着つけたいです


過去のABCも似たような記事を書いています。よければそちらもどうぞ。

Discussion