ABC243:Eまで埋めた!

ABC243

埋め埋め

  • 電車で解いたり、理解しておいた問題を実装していった
  • 次の流れで精進していくのが良さそう📝
    • 考察する
    • 実装する
    • 通す
    • 文字の解説見る
    • snukeさんのコードを読む
    • 疑問があれば動画を見る
  • 今回Eまででかなり勉強できた🚀

A: Shampoo

  • 数が小さいから、3人が順に使っていく様子をそのまま実装しても解ける
  • 解説見て。 %= の存在忘れてたんだけど。。。リハビリがまだまだ必要だ😭
  • Pythonならsum(array)でかけるのになぁとか思いながら実装してた🤔

B: Hit and Blow

C: Collision 2

  • Cにしてはちょっと実装重め!
  • Lのときと、Rのときで、相手より大きいべきか小さいべきかの判断を変えないといけないことに注意!
  • リファクタリングしてだいぶきれいになった
    • 無理矢理まとめて書いたけど、よく考えたらLのとRのとで、そもそもmapを2つ用意した方が読みやすいかも!
    • if (mp[q] > x == is_r) は、かっこいいけど、読み易さが犠牲になった感じがあるよね😭

D: Moves on Binary Tree

  • 数が大き過ぎたらTLEするけど、10**18に収まる範囲だったら10**6回計算しても大丈夫というのが、感覚としてなかった
    • それでもTLEするんじゃないかと思ってた😭
  • 2進数に直していたら、末尾を操作するだけだよ、というのは確かに!!
    • 初めてreverse_iteratorを使った!
      • あとで使い回さないのなら、普通にreverseしても良いね🤔
  • string にも push_pack 使えるの、string はcharの配列なんだから、当たり前なのに忘れてた😱

E: Edge Deletion

  • ワーシャル・フロイド法、最初に使ったときは自明じゃんって気持ちになってたけど、今回また忘れてた!
  • 後から考えたら、>=とすべきところを=にしてたのに、通ってしまった