私の競技プログラミングに関連する記事の目的

Updated:

この記事では、この日記の競技プログラミングの記事について述べます。まず私がコンテスト引退勢であることを述べます。次に、記事の目的を述べます。最後に、これからの方針を述べます。

本文

この文章を書くきっかけ

昨日「競プロ忘年会 2021」に参加しました。その際に、私に声をかけてくださった方がいらっしゃいました。「あなたが Takahashi さんですか」とおっしゃいました。お聞きすると、ご自分で AtCoder の過去問演習をなさるときに、検索すると、私の AtCoder の反省文がヒットすると。詳しい解法が書いてあるので、参考になっているとのことでした。

しかも、こういう反応をなさる方が 1 人だけでなく、複数名いらっしゃいました。私は非常にうれしく思いました。会場でそのようにお声がけくださいまして、ありがとうございました。

私はもう Twitter をほとんどやっておらず、またこの日記も凍結状態なので、特にこの 1 年間、どういうことを考えているのか書いてきませんでした。以前は方針を表明していたことでしたが、今後の方針も加えて、整理して書きます。

私はもう引退勢

まず、私はコンテスト引退勢に入ります。その理由は、 21 時開始の AtCoder の開催時間には就寝しているから です。現在の私は、 19 - 20 時台に就寝しています。

というわけで、この日記は、ほとんど凍結状態です。

日記は反省文

実は、この日記のプログラミングコンテストの記事は、私のコンテストでの「反省文」です。他人に読まれるための、ポイントを押さえた「解説」ではなく、証明を与えることに重きが置かれている「復習ノート」です。自分のために書いています。記号の使い方や図示は私の方針で行っています。

ゆえに、冒頭の状況は 私の「反省文」を、競技プログラミング力の高い読者がご自身の中で「解説」へと「変換」してくださっている 状況であるといえるでしょう。

反省文を自分のために書いている理由を述べます。投稿論文を書くときもそうですが、他の人から見て冗長だとしても、自分の経験上ここは半年後忘れそうだということは、書いたほうがいいことが多いと感じます。賛否両論あるかと思われます。しかし、論文は、読んでくださる人、というより読める人は世界に 2, 3 人しかいないものです。最も熱心な読者である「未来の自分」に資するように書くのが適切であるという考えに至ります。この方針をコンテストの反省文にも適用しています。これが理由です。

こういう記事を書くのは骨が折れます。一般に、強くなるためには、解説記事作成より重要なことがあります。しかし、しっかり書いておくと、しばらく経ってから復習する際に役に立つことも実感しています。

これからの方針

前段落では、反省文を自分のために書いていると述べました。冒頭のように、あまつさえ称賛・感謝の言葉まで頂戴しました。これは私にとっては意外な出来事で、その場ではうまく反応できませんでした。考えを整理して、これからの方針を述べます。

今後、コンテストの反省文を書くことは、他の人が読むことも加味しながら書きます。未来の私にとって重要な内容を書き込むという方針は維持します。しかし、結論を先に書いたり、構成を練って工夫したり、証明を後回しにしたり、といった方法で、読者に資するようにもできるかと思っております。そのように努力します。

とはいえ、先に述べたとおり、私はもうコンテスト中には寝ています。コンテストの反省文はこれ以上増えることはなさそうです。コンテストに出ないなら、以前のような実践的な過去問練習もしないでしょう。

しかし、過去問を解きたくなったときに、問題を解くのは自由です。競技プログラミングの頭の使い方は、他の活動とは異なった独特の良さがあります。特に私は、新規性のある難問を、じっくり時間をかけて考えるのが好きです。 頻度は少ないが、面白い過去問が解けたら、その気づきを感動とともに書き留める。 そういう方針でいきます。例えば、直近だと AGC053-F は、わかってから半年以上放置しています。まずはこれを記事にしたいところです。

最後に

今でも、競技プログラミングが好きです。そして、それだけでなく、競技プログラミングのコミニティが好きです。コミニティの善良さが、競技プログラミングのいいところです。

コンテスト参加者を引退しましたが、種々のゲームをやる時間はあります。私の好きなゲームの中に、競技プログラミングがあることを再認識できました。様々な方々に感謝申し上げ、この記事を終わります。