DENXブログ

同志社大学 電気情報研究会(DENX)の活動や日常風景などを紹介します。

【活動報告】ACM-ICPC国内予選に参加しました

DENX 4回生 A_luckyです.

去る6月26日(金)にACM-ICPC国内予選に DENXメンバー3人(やまもと,会長,私)で参加しました. 結論から言うと予選落ちでした.成績は8問中3完で96位

皆さんACM-ICPCをもちろんご存知のこととは思われますが, 万が一にも初耳の方がおられるかもしれませんので, 今一度ここで概要を説明致します.よくお読みになりやがってください.

ACM-ICPCとは,ACMという"強い"学会が毎年開催している, 大学対抗の世界規模のプログラミングコンテストです. 今回の国内予選では82大学372チームが参加し,年々参加人数は多くなっています. プログラミングコンテストというと作品を提出して評価してもらう, というものをイメージされるかもしれませんが,そういうやつとは異なります. コンテストの内容は,与えられた課題を制限時間内になるたけ速く多く解く, この一言につきます. このジャンルは競技プログラミング(競プロ)と呼ばれたりもします.

与えられる課題というのは主にアルゴリズムを用いて解答する問題が出題されます. 扱うアルゴリズムはソート,ヒープ・スタック,文字列処理,探索と単純なものから グラフ理論動的計画法,数論,幾何そしてそれらの複合問題など 見るもおぞましいものまで様々. 出題される問題に対して何のアルゴリズムを使えば良いかが一見してわからないところがミソで,解法を思いつくことができれば8割方勝ちです. 後の2割は正確なコーディングにかかっています. プログラムの大方はあっていてもコーナーケースと呼ばれる境界条件のデータで躓くことがしばしば.

大会について詳しくはこれを読めば3分でわかります.はい.


この大会の特徴の1つは3人1組でのチーム戦であることです. それはすなわち解答に使えるPCが1台だけということ意味します. この3人で1台という制約が結構辛く,誰かがコーディングしている間は 残りの人は紙とペンというアナログなツールしか使えません. 裏を返せばチームワークが要求されているということになります. 今回はやまもと君がA問題,会長がB,私がCと学年順に担当を割り振るという 有って無いような戦略で行きました. 結果として順番に3問解けたので結果オーライでは???

D問題は3人であーでもないこーでもないと言いながら考えた末, 解答にはたどり着けませんでした. もちろんE問題以降もチラ見しましたが,H問題がドローンか,たのしそう(小並感) とチラ見で終わりました. D問題はいわゆる動的計画法(DP)の問題だったわけですが, DPが解けるかどうかで競プロプレイヤーとしての""が違います. 我々弱小チームはまだその域に達していないという事でしょうか.

この国内予選のために1年間会長+1名でICPC講座を行ってくれていました. (その前年は"私"が担当) 講座の形式としては,アルゴリズムを勉強し,それに関連した問題をAOJから取ってきて演習し,問題の解説を聞くというような流れです. AOJの演習は「修行」,解けなかったコードを書き写す作業は「写経」と呼ばれます. 「悟り」を開き,最強最速アルゴリズマーになることが競プロerの夢と言えるでしょう. もちろん,効率の良さと正確さを求められる競技プログラミングプログラミング力の向上にもつながります. さらには,勝ちまくりモテまくりになれる……かどうかは個人差があります.

ちょっとでも興味を持ったDENX民は来年ぜひICPCへ出場してみましょう. 来年度大会に向けたICPC講座が今年もきっと開講されるよね,やまもと君(チラッ