AtCoder Beginner Contest 226 参加記

2021/11/7に開催されたAtCoder Beginner Contest 226に参加しました。

atcoder.jp

ここ最近のABCコンテストでは緑パフォが安定して取れており、レートの推移もなんとか上昇トレンドとなっているところですが、まだ一度事故ったら茶落ちしかねない状況でもあります。

今回もなんとか4完は達成して、緑は維持できるような結果がでるようにという気持ちで臨むことにしました。

今回の結果

で、今回もなんとか4完を確保できましたとさ。有言実行といったところです。

ABC226結果
ABC226結果

で、今回は早めのタイムが出たのが良かったのか、久しぶりの4桁パフォ。

水色パフォまでは出せませんでしたが、レートの方は気持ち大き目の上昇幅となりました。

振り返り

A、Bがいつもより難しめ。Eはあとちょっとというところで解ききることができませんでした。

ABC226提出結果
ABC226提出結果

A問題

A - Round decimals

入力された実数を小数第一位で四捨五入した結果を求めよという問題。

一見して、入力をBigDecimalで受けて、round関数の結果を出せばいいんじゃねと思う所だが、ライブラリを使ったroundの計算結果は、この問題でいうところの四捨五入と微妙に異なるところがあるとかないとか、原点に近い方に丸められるとか違うとかなどのうろ覚えの知識に基づき、ライブラリに頼ると罠に嵌まりそうという考えが頭をよぎりました。

よって、小数第一位の数字を取得し、5以上だったら整数部に1を足すという愚直な実装をすることに。

多少時間はかかりましたが、無事にACを取ることが出来ましたとさ。

提出コード

https://atcoder.jp/contests/abc226/submissions/27080729

B問題

B - Counting Arrays

前回に引き続き、今回のB問題も少し難しめの問題かという印象。

まともに入力の配列の要素を一つづつ検査していたらTLEになりそうな制約でしたが、1行分の配列データの入力をそのまま文字列としてSetに突っ込むことで解決できました。

こちらも問題なくAC。

提出コード

https://atcoder.jp/contests/abc226/submissions/27084656

C問題

C - Martial artist

Nを習得するために最低限必要な技の習得時間の合計を求めればよい。ということで、以下のような処理を実装することでACが取れました。

  1. N番目のスキルを習得済みとし、習得するための時間を答えに足す
  2. N番目のスキルを習得するために必要な技の番号全てをキューに入れる。
  3. キューから技の番号を取得する。取得した番号のスキルを習得済みとし、習得するための時間を答えに足す。
  4. 上記のスキルを習得するために必要な技のうち、習得済みでない技の番号全てをキューに入れる。
  5. キューが空になるまで、3,4を繰り返す。
提出コード

https://atcoder.jp/contests/abc226/submissions/27094195

D問題

D - Teleportation

全ての点について、2点間の傾きをそれぞれ求め、同じ傾きのものは除外したカウントを求めることで答えとなりそう。

で、位置は異なるが同じ傾きである場合を検出するには、2点間のx座標の差とy座標の差をGCDで割れば良いかと。

ということで、あとは実装してACが取れましたとさ。

提出コード

https://atcoder.jp/contests/abc226/submissions/27101652

E問題

E - Just one

残り40分程度の時間があったので、頑張れば5完いけるかという気持ちで臨んだE問題。

問題をよくよく読むと、グラフの各連結成分でサイクルが構成されていることを確認し、最終的には2のサイクルの個数乗が答えになるのかなー?といった感じ。

と、ここまではたどり着いたのですが、いざ実装に取り掛かってみた時、答えが0になるケース、要は連結成分でサイクルが構成されない条件が具体的に何なのかがわからず仕舞いで、結局サンプルが通る程度の実装までたどり着けずでした。

こういうグラフ系の問題には、まだまだ慣れていない状態なので、もっと上を目指すにはやはりグラフ問題も重点的に対策すべきだなーと痛感する次第です。

F問題

F - Score of Permutations

問題をチラ見しましたが、小難しそうな数式が並んでおり、チンプンカンプンでした。。

G問題

G - The baggage

問題すらみれておりません。

H問題

H - Random Kth Max

問題すらみれておりません。

これまでの実績

上昇トレンド継続中。とりあえず一発で茶落ちするようなことはなさそうな位置までは来ましたが、まだ油断禁物といったところです。

コンテスト実績
コンテスト実績

総括

今回、4完で緑パフォ上位が取れたものの、E問題まで取れたら水色パフォとれたかなーというところ。

このまま緑パフォを取り続けても頭打ちになるだけなので、今後のABCでは水色パフォが安定して取れることを目標として、精進を継続していきたいと思います。

ということで、また次回も頑張ります。