AtCoder Beginner Contest212に参加しました。
結果
A,B,C問題の3問正解でパフォーマンスが548でした。
B問題の問題文を誤解しててそこそこ時間を無駄にしてしまった…
あと最近気づいたけど、金曜の夜に夜更しすぎて睡眠時間が足りてないと、コンテスト中は頭の回転が鈍ってパフォーマンスが低くなりがちな気がする。翌日休みでも早く寝ないとなあ…
A - Alloy
問題文の通りif文で処理する。 if文の練習問題かな。
B - Weak Password
入力された暗証番号が以下を満たしていないことを確認する。入力は文字列として受け取り1桁ずつ数字に変換して処理する。
- 全部同じ数じゃない
- i桁目とi+1桁目が連続した数になっていない
解いている時は2つ目の条件の意味がわかっていなくてサンプル2がなぜStrongになるのかしばらく考えてた。
任意って好きなものを適当に選んでくらいの意味に思ってたので、サンプル2の1桁目と2桁目が連番になっているから条件満たさないとずっと思ってた。「任意のXX」って「全てのXX」と同じ意味らしい。ずっと間違って認識してた…
C - Min Difference
全ての組み合わせの中での最小値を求める問題。
全組み合わせを愚直に計算しよとするとで最大くらいの処理が必要になってTLEになる。
2重ループを工夫して処理が必要そうだったので、[tex:A {i}]はループで処理しつつ、各[tex:A {i}]に対するとしては二分探索でに1番近いものを探して計算をした。
E - Safety Journey
もう一工夫が足りなかったのでTLEが解決できなくて解けなかった。
問題文を読むとDPを使えば解けそうだと思ったのでDP[i][j]=i日目に都市jにいる場合の旅の数 として解こうとした。
だけどDPを更新するときに各iに対して2重ループが発生して最終的にとなってTLEになった。
解説を読んでみたらここまでは意図通りでそこからもう一工夫しての処理が必要っぽい。後で解説熟読して復習しとこ。