AtCoder Beginner Contest 396に参加しました

AtCoder Beginner Contest 396に参加しました

リンク:https://atcoder.jp/contests/abc396

2025/03/08 21:00~22:40(JST)に行われた、AtCoder Beginner Contest(ABC) 396に参加しました。この投稿では、その時の話をしていきたいと思います。

21:00に問題が公開。早速問題を確認しました。

最初の問題であるA問題はこんな感じの問題でした。

要は「数列の中に、同じ要素が3つ連続する箇所が1つでもあるか?」ってことだろ、と私は解釈しました。数列全部を見ればいいだろって考え、そのアプローチでACできました。

A問題の提出コード:https://atcoder.jp/contests/abc396/submissions/63494994

さて、次のB問題へ行きました。問題の内容はこんな感じでした。

要は「カードを積み重ねたり、一番上のカードを取り出してね」って問題だろうって思いました。一番上しかいじらないなら、いわゆる「スタック」で実装できるだろう、と考えて解いて、ACできました。

※スタック:最後の部分しか追加・削除できず、最後に入れたものにしかアクセスできないが、高速で動く。今回のような、「最後に入れたもの以外不要だ」みたいな場合に使える。…って説明でいいのかな?

提出コード:https://atcoder.jp/contests/abc396/submissions/63501399

さて、C問題へ。問題はこんな内容でした。

もう多分、解釈なんかを聞くより問題文を呼んだほうがいいと思います… さて、私は「価値を降順でソートしつつ、メリットがでかくなるように選ぼう」って考えました。「黒色のボールがマイナス、白色のボールがプラスなら、メリットがでかいなら選ぶ」「黒色のボールがプラスで、白色のボールがマイナスなら、黒色のボールだけ選ぶ」みたいな感じで、一つひとつ見ていく、ってアプローチで解くことにしたら、ACすることができました。

提出コード:https://atcoder.jp/contests/abc396/submissions/63529640

で、D問題へ行きました。珍しくブログ執筆時点、コンテスト後でACすることができたD問題でした。

グラフについてあまり知らなかったので、頑張って図にしたりして理解し、DFSを書こうとしましたが…

D F S の 書 き 方 が わ か ら ん(こいつ本当にAtCoder最強になりたいのか????)って感じでした。

そう、私は考えはわかってたのにDFSが書けなかったのです。そのためコードを提出することもできず、ACすることができませんでした。

最終的に解説を見て(ほぼ丸パクリ?)、コンテスト後にACしました。

提出コード(コンテスト後提出です):https://atcoder.jp/contests/abc396/submissions/63564275

結果はパフォーマンスが601、順位は5952位で終わりました。D問題が解けたなら…って感じになってしまいました。これは私の練習不足だと思うので、またしばらく精進してきます。

ここまで見ていただきありがとうございました! また次回をお楽しみに!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です