hogecoder

tsutaj 競技プログラミングの記録

HCPC 北海道大学競技プログラミングサークル の紹介

tsutaj です。もうすぐ新年度になるので、弊学の競技プログラミングサークルを紹介します。特に春から北大に入学・進学する方々の参考になれば幸いです。

競技プログラミングとは?

まず、この記事を読んでくださった方で「競技プログラミングって何?」と疑問に思った方もいるのではないかと思います。

一言で言うと、競技プログラミング (以下「競プロ」と略記) とは、「与えられた問題に対して、適切な手続きを考えて実装することを競う競技」 です。より具体的には、人力では到底解けないようなスケールの問題が出題されて、それに答えられるようなプログラムを実装して提出する、というものです。コーディングの技術はもちろんのこと、問題解決に必要なアルゴリズムの知識や発想も求められます。

もっと詳しく知りたい方は、高校生向けに説明された sifue さんの記事 も参考にしてみてください。

競プロサークルに入るメリットとは?

競プロはサークルに入らなくとも、パソコンさえあれば気軽に始めることができます。ですが、せっかく始めるならば一度サークルに足を運んでくれたらいいなと思っています。

私が考えるに、サークルに入るメリットとしては以下が挙げられます。

  • 競プロに熱心に取り組んでいる仲間に会える
    • 毎週サークルで競プロをしていることもあって、メンバーの競プロに対する意欲は非常に高いと思っていますし、そういう仲間がいたほうが刺激になって良いと思います。大会が近くなると週末に有志で集まって追加で活動するようなメンバーもいたりします。
  • 強い (?) 人にいろいろ教えてもらえる
    • 2019 年 4 月 1 日現在、弊サークルには AtCoder 黄色が 2 人、青色が 2 人、水色が 5 人ほどいます。が、競プロを大学から始めた人がほとんどで、先輩方から教えてもらって地道に実力を上げていった感じです。基礎的なところからアルゴリズムに関する発展的なトピックまで、知識や経験を還元していけたらいいなと思っています。
  • チームを組む相手がすぐに見つかる
    • 競プロの大会の大半は個人戦ですが、ACM-ICPC など一部大会では、チームでの出場が必須となっています。サークルにいればチームを組む相手にはまず困らないと思います。

活動内容

サークルとしての大きな目標は、チーム戦である「ACM-ICPC 国際大学対抗プログラミングコンテスト」への参加、および予選突破です*1。これを達成するために週に 2 回、競技プログラミングの実力を上げるべく活動しています。活動内容は主に以下の 2 種類です。

練習会

練習会では、(バーチャル) コンテストを通じて決められた時間内で実際に問題を解きます。コンテスト終了後に解説もするので、わからないところがあればそこで解消できると思います。対面で問題について議論するのは楽しいです。

勉強会

勉強会では、予め決められたトピック (これは動的計画法や全探索など、競技プログラミングにおいてよく使用されるアルゴリズムになることが多いです) について発表担当者がスライドを作り、全員でその内容を勉強します。発表途中、わからないことなどがあれば発表者に質問しつつ、新しい知識を得ていきます。

参考までに、弊サークルの勉強会で使われたスライド類は、HCPC のホームページ にまとまっています。

また、これとは別に弊サークルでは作問も行っています。例年では、作った問題が会津大学プログラミング合宿・立命館大学プログラミング合宿で使われます。問題を作る側になれる機会は貴重だと思いますので、ぜひ一緒に作問しましょう!

連絡先など

HCPC のホームページ にもっと詳しく情報が載っていますので、こちらもぜひチェックしてみてください。

また、サークルを見学したい!などなど、興味がおありの際はぜひご連絡下さい。この記事の著者: tsutaj (Twitter: @_TTJR_) に連絡するか、hokudai.procon[at]gmail.com までメールしてください!ご連絡お待ちしています。

*1:今年の国内予選は 7 月 12 日 (金) に行われるようです