ABC243:Eまで埋めた!
ABC243
埋め埋め
- 電車で解いたり、理解しておいた問題を実装していった
- 次の流れで精進していくのが良さそう📝
- 考察する
- 実装する
- 通す
- 文字の解説見る
- snukeさんのコードを読む
- 疑問があれば動画を見る
- 今回Eまででかなり勉強できた🚀
A: Shampoo
- 数が小さいから、3人が順に使っていく様子をそのまま実装しても解ける
- 最初に、使い切る直前まで3人の合計分を引いてしまうともっと速い!
- と思ったら、改善したはずの方が遅くて笑った🤣
- 最初に、使い切る直前まで3人の合計分を引いてしまうともっと速い!
- 解説見て。
%=
の存在忘れてたんだけど。。。リハビリがまだまだ必要だ😭 - Pythonなら
sum(array)
でかけるのになぁとか思いながら実装してた🤔
B: Hit and Blow
- 2重ループと、setを利用して解いた!
- 1つ目と2つ目を同時にやって行った方が、無駄がなくて良いよね😏
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しても良いね🤔
- 初めてreverse_iteratorを使った!
- string にも push_pack 使えるの、string はcharの配列なんだから、当たり前なのに忘れてた😱
E: Edge Deletion
- ワーシャル・フロイド法、最初に使ったときは自明じゃんって気持ちになってたけど、今回また忘れてた!
- snukeさんの説明ものすごくわかりやすかった!
- 後から考えたら、
>=
とすべきところを=
にしてたのに、通ってしまった- まだなぜかわかっていない
- この提出