# 競プロの解説記事をはじめます 競技プログラミング(主にAtCoder)の解説記事を不定期更新[^更新ペース]します。 [^更新ペース]: 1回のABC毎に1問作りたかったが、初回記事から手間がかかりすぎたので気が向いたときに書くことにしました AtCoderの公式解説など、解法の詳細な説明はすでに数多くあるので、それらとは異なる本解説記事で目指していく方向性について説明します。 目次 - [自己紹介](#自己紹介) - [既存の解説について](#既存の解説について) - [本解説記事の目標](#本解説記事の目標) - [対象とする人](#対象とする人) - [まとめ](#まとめ) ## 自己紹介 AtCoderで[carrot46](https://atcoder.jp/users/carrot46)という名前で参加しています(Twitterは[こちら](https://twitter.com/carrot46_kyopro))。 アルゴリズムの方は2年ほど前に橙に上がってから大きく動いていません。 ヒューリスティクスの方にも参加していて、現在は黄色です[^hrate]。 [^hrate]: 2023年2月8日現在、レーティング101位でギリギリ銅冠がつかず悲しい ## 既存の解説について 皆さんは、AtCoderの問題解説[^edit1]を読んでこのように感じた経験はないでしょうか。 [^edit1]: 以降では公式解説を想定しています - 解けなかった問題の解説をコンテスト後に読んだら、一行目からコンテスト中には考えもしなかったことが書いてあった - 解説を読み、解法は理解できたが、コンテスト中どうすれば解けたのかはさっぱり分からない 解説では、簡潔で読みやすいものにするために、**正しい解法**+**具体的なアルゴリズム**+**正当性の証明**(+計算量解析)のみで構成されることが多くあるため、このように感じることも少なくないでしょう。 実際に、解法の理解のためにはこれらの要素で十分であり、私個人としてもこの形式が読みやすいと感じています。 また、最近の公式解説でも増えているのが、解法に至るまでの経緯、すなわち**考察**についても説明している形式です。 ステップ毎に行う考察を説明することで、問題を解く際の流れが掴みやすくなっています。 ## 本記事の目標 充実した解説が多くある一方で、前章の最初に紹介したような、 - 最初の発想から浮かばなかった - 解法は分かったが次解ける気がしない といった悩みは、考察付きの解説であっても解決するとは限りません。 こういった悩みの解決を目指して、正しい考察に行き着くまでの**思考の過程の一例**を提供することが、本記事を書き始めた動機[^motivation]となっています。 具体的には、問題を見てまず何を考えれば良いか、どのようなことを考えるかといったことについて、私自身がコンテスト中に行ったものを出来るだけ詳細に説明したいと思っています。 例えば[次の記事](https://hackmd.io/@carrot46/BkwfZUZTj)で扱う[ABC288E Wish List](https://atcoder.jp/contests/abc288/tasks/abc288_e)については、**問題の性質を整理**する過程について説明します。 とりあえず扱う問題としては、ABCの400-600点問題から適当に選ぶことを予定しています。 読みやすさを目指して書くつもりですが、解説等では簡潔さのために省略される部分をあえて書こうという試みであることもあり、読みにくいかもしれません。 [^motivation]: 読んでもらうことの他、自分の思考の過程がどのようなものか見直してみたいという動機もあります ## 対象とする人 以降の記事は、次のような人を対象としています。 - 問題の解法が浮かばないことに悩む人[^target] - 典型から一工夫が必要な問題を解けるようになりたい人 [^target]: ここで言う問題はABCの400-600点程度を対象としています 実際に問題を解くために必要な考え方と解説とのギャップを埋めることを一番の目標としているので、是非とも読んでいただきたいです。 また、単に他人の思考の過程に興味がある人も是非読んでみてください[^思考の過程に興味]。 [^思考の過程に興味]: 自分も割と興味はありますが、他人の思考の過程を追うの大変そう 一方で、次のような人にはあまり推奨できません。 - 簡潔な解説を読みたい人 簡潔さのため書かれない部分をあえて書こうという記事であるためです。 - ネタバレを食らいたくない人 問題名を記事タイトルに載せるので、各自で回避してください。 ## まとめ 理想を言えばABCがあるたびに1問書けるように頑張りたいです。 初回分として[ABC288E Wish List](https://atcoder.jp/contests/abc288/tasks/abc288_e)の[解説記事](https://hackmd.io/@carrot46/BkwfZUZTj)も書いたので、良ければ読んでください。 書きたくなったらAHC関連のこととかも書くかもしれません。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up