たくあんポリポリ

勉強したことを載せていきます。最近、技術系の記事はZennに書いています。(https://zenn.dev/chittai)

【AtCoder】【C#】AtCoder Beginner Contest 152 の反省

f:id:c_taquna:20200115005201p:plain

今年は、コンテストの反省を書くのをやめようと思いましたが、あまりにもABC152で反省しておきたいことがあったので書きます。AtCoder Beginner Contest 152の反省です。

はじめに

本記事のテーマ

完全に自分用の記事です。ABC152でとった戦略や解けなかった問題の復習をします。

コンテストへのリンク

atcoder.jp

本題

A問題の反省

特にないです。

実装 AtCoder/A.cs at master · chittai/AtCoder · GitHub

B問題の反省

最終的にfor文で実行したが、どのような処理にするのか迷いがあった。C#においてはfor文で問題ないと思う。ただ、実装にまごついて時間がかかりすぎてしまった。

実装 AtCoder/B.cs at master · chittai/AtCoder · GitHub

C問題の反省

これは、特になし。全探索しようとするとO(N2)かかり、TLEしてしまうので、O(N)でできないか考えた。

  • 最初から要素を確認していき、最小値を記録しておく
  • その最小値以下の値が出ていたら、条件を満たしているのでカウンタにプラス
  • 最小値を更新

のやり方でOK。

実装 AtCoder/C.cs at master · chittai/AtCoder · GitHub

D問題の反省

ここが問題。D問題はある程度やり方がわかったのですが、ちょっとE問題を覗いてみたところ、簡単そうに見えたのでそっちに手を出してしまいました。

これはかなり悪手で、当然E問題がそんなに簡単なはずはなく、解けませんでした。やはりレートが低いうちはちゃんとD問題まで解ききらないと駄目だなと。。

解き方の説明は省きます。

実装

AtCoder/D.cs at master · chittai/AtCoder · GitHub

感想

ということで、今回は調子にのってDを飛ばしてE問題に挑戦したことが駄目でした。もちろんそのままD問題をやっていて解けたかは不明ですが、解ける可能性はEよりもDのほうが高かったなと。

今後は、D問題まではちゃんと順に解いていこうと思いました。