Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Beginner Contest 160

3完1WA。

DもEも今書いたらすんなり通りそうなだけに、ちょっとショックが大きい結果となりました。

各問題

A - Coffee

これは問題文通り、3文字目と4文字目、5文字目と6文字目を比較すればいいです。

B - Golden Coins

500円硬貨のほうが価値が高いので、そちらを最大化するようにします。

つまりX / 500で得られる最大の500円硬貨の枚数を求め、残りのX - X * 500円から得られる最大の5円硬貨の枚数を求めればよいです。

C - Traveling Salesman around Lake

行ったり戻ったりするのは明らかに効率が悪いので一方向に進み続けると考えてよいです。とすると、家と家の間隔が最も広い部分を避けるのが最短距離になります。

私はなんと、回答ではKから最も広い部分を引かなければならないところ、最も広い部分を出力してしまい1WAを出してしまいました。

これ、サンプルの出力がどちらもちょうどK / 2だったのでそこで気づけなかったのですが、意図的にそうされていたのでしょうかね?

まあいずれにせよ、自分でももうちょっとわかりやすいテストケースの一つも書いてから投げろって話なんですけど。

D - Line++

N^2が通るのはわかっていたのですが、場合分けにこだわってしまい爆死しました・・・。

Nが通るならBFSでよかったんですね・・・。知識は足りているのに使えないあたり、実戦勘が衰えていて精進不足だと感じます。

あと、ダイクストラをN回回すというのもちらっと考えたんですが、さすがにそれはなくない?と試さずに却下してしまいました。Twitterを見る限りそれで通ったようで。ああ・・・。

E - Red and Green Apples

これはpriority_queueに突っ込んで、個数を管理しつつ上から取ればいいんですよね、とここまではよかったのですが、無色のリンゴをどっちに割り振るかの処理をうまくできずいくつかWAが残った状態で終わってしまいました。

F - Distributing Integers

見ることもかなわず。

まとめ

所用で帰宅が20:55で、ギリギリ参加が間に合ったという状況では、普段通りのパフォーマンスが出せなかったのも無理はないのかも・・・。

いまだに初参加からのRated Streakが継続中なので、何がなんでも参加しなければとなっている状況です。しかし、それが負担になるくらいならそろそろ意図的にかどうかはともかくこのStreakは切ってしまったほうがいいのかもしれません。

あとは純粋に精進不足が響いてますね。特に何度も復習して一度解いた問題・知識を定着させる作業が全くできていません。バチャとかやるかなぁ。あと、4月から勤務形態に変化があるかもなので、あさかつとかも視野に。

f:id:mdstoy:20200328234843p:plain