AtCoder Beginner Contest 183 参加記

2020/11/15に開催されたAtCoder Beginner Contest 183に参加しました。

atcoder.jp

前回のコンテストで、やっとこさ入緑。今回のコンテストでは、なんとかレート下げを食らわない程度で頑張ろうということで、最低4完、目標それ以上という感じで臨みました。

今回の結果

で、、今回の結果ですが、なんとか終了ギリギリで4完に滑り込みましたー。

ABC183結果

ABC183結果

しかし、4完したもののタイムが悪く、無念の茶パフォ。。

これまでずっと上昇傾向だったレートも微減を喰らってしまいました(泣)

振り返り

Bで大きくやらかし。他にも小ミスが続いて4完確保がやっとでした。。

ABC183提出結果

ABC183提出結果

A問題

A - ReLU

JavaのMax関数を使って、Max(0,x)を返すだけでACできました。

B問題

B - Billiards

 問題を最初に読んだとき、「なんか三角関数とか使うんかいなー?」とか考えてしまい、なかなか思考がうまくまとまらない。

ではということで、サンプルから何かの法則性がないかという事で考えてみる。すると、これって、S_x + \frac{G_x - S_x}{G_y + S_y}が答えになるんじゃね?という考えに至った。しかし、実装してみるとサンプル1と2がOKで3がNGになってしまい、そもそも考え方が全然違うということを思い知らされる。

そんなこんなで30分以上この問題に費やしてしまい、このままでは1完の終わりになってしまうということで、いったんこの問題をスキップしてC問題に向かいました。

 

で、CとDをなんとかACしてから改めてこの問題を検討してみると、x座標がG_x -S_x分動くときに、y座標がS_y + G_y分動くということから、x座標は、S_xG_xの間をS_yG_yの比率で案分したらOKなんじゃね?ということで実装してみたら、やっとこさACが取れましたとさ。終了ギリの7分前の出来事でした。

C問題

C - Travel

 Nの最大値が8と小さいので、DFSですべてのパターンを探索するコードを組んだ。テンプレート的なものがなく、イチから組んだので結構時間がとられたものの、なんとか一発AC。

D問題

D - Water Heater

 いもす法を使って累積和をとり、あとはそれぞれ供給できる湯量と比較するだけ。

なんとか一読で解法が思いつく問題でよかった。なんとか実装も間に合い一発AC。

E問題

E - Queen on Grid

問題を一読して、DPを使ってなんとかできそうという感じはあったが、如何せん残り20分程度しかなかったので、飛ばしてたB問題に着手することに。この問題は致し方なく諦めて、コンテスト後にACすることにしました。

F問題

F - Confluence

一読しましたが、コンテスト中はここまで解く余裕がなかったので、早々に退散。

コンテスト後に確認したら、なんとか実装がメンドそうだがノーヒントでいけそうな感じがあるので、解説なしACをしようかというところです。

これまでの実績

前回入緑したばかりなのに、いきなり茶落ちのピンチ!

次回はなんとか良い結果を残さねば。

コンテスト実績

コンテスト実績

総括

今回は全体的に難易度が低めだったようですが、Bで結構やらかしてしまい、それが後々まで尾を引いてしまいました。やはり、まだまだ問題を解く数がこなせていないのが原因だと思います。

今後は意識して精進の時間を作るように努力します。

また、次回も頑張ります。