Close

競技プログラミング

競技プログラミングとは


競技プログラミングとは、与えられた問題に対して、解く速さと正確さを競う競技のことを言います。
問題内容をそのまま実装してしまうと計算が終わらなくなってしまう場合があるので、効率的なアルゴリズムを考え、実装する必要があります。

競技プログラミングの詳細な説明は後にし、初めに活動内容について記述します。
その後に各コンテストの詳細について説明してありますので、参考サイト等も合わせてご参照ください。

ソフトウェア工房の活動


P1070052

ソフトウェア工房では主にTopCoder(SRM)のレーティング向上と、ICPC予選突破を目標に活動しています(TopCoderやSRMに関しては後で詳しく説明します)。

活動内容としては、2013年度は週に2度、メンバー内で模擬SRMを開催していました。
2014年度は1年生の教育を中心に、アルゴリズム講習とAOJ VirtualArenaを利用した問題練習を行っています。

また、学内向けジャッジサーバであるKait Online Judge(KOJ)を用いた学内コンテストも行っています(KOJの問題は上級生が作成します)。

言語は主にC++を使っています。

新規メンバー募集しています!

競技プログラミングは、プログラミングで何かやりたいけど何をすればいいか分からない人や言語に関しての知識・スキルを磨きたい人、問題を解くのが好きな人にオススメです。
また、競技プログラミングで培った言語能力やアルゴリズムスキル、プロトタイピングスキル(素早いコーディングスキル)などは、その他の開発などにも大いに役立ちます。

実績:
2013年度ICPC国内予選突破 アジア地区予選28/39位 (Team:ayukorochan)
TopCoder(SRM)順位 国内アクティブ92/642位 全世界アクティブ975/8892位 (2014/02/06現在)

ICPC


国内で一番有名なコンテストは、ACM国際大学対抗プログラミングコンテスト(ICPC)です[要出典]。
The ACM-ICPC International Collegiate Programming Contest
The 2013 ACM-ICPC Asia Aizu Regional Contest

ICPCはその名の通り、大学対抗のプログラミングコンテストで、年に1回開催されています。
7月に国内予選が行われ、それを突破すると11月にアジア予選、最後にWorld Finalsが翌年の6月に行われます。

他のコンテストとは違い、3人1チーム1PCで行うのが特徴です。

TopCoder


日本ではICPCが有名ですが、世界で見ると一番有名なコンテストはTopCoderです。
topcoder
Programming Contests, Software Development, and Employment Services at TopCoder

TopCoderにはSRM(Single Round Match)やMarathon Matchがありますが、ここではSRMについて主に扱います。

SRMは月に平均4回ほど行われます。
コンテストは、コーディングフェイズ(75分)とチャレンジフェイズ(15分)に分かれています。
コーディングフェイズでは問題を解き、チャレンジフェイズでは他人の書いたコードに対して誤答を誘発させるようなテストケースを投げ、撃墜することができます。
また、TopCoderはレーティングシステムを採用しており、毎回のコンテストによりレーティングが変動し、自分の腕を数値化してくれます。

TopCoderはその性質故に、”頭を使うオンラインゲームである”と言う人もいます。

詳しくは下記のサイトが詳しいので、ご参照ください。
TopCoderとは (トップコーダーとは) [単語記事] – ニコニコ大百科
最強最速アルゴリズマー養成講座:細かすぎて伝わりにくいTopCoderのコーディングスキル向上マジック (1/3) – ITmedia エンタープライズ

AtCoder


AtCoderは、高橋直大氏が運営する日本の競技プログラミングサイトです。

毎週土曜日PM9:00から1時間半のコンテストを定期開催しています。
定期コンテストはAtCoder Regular Contest(ARC)とAtCoder Beginner Contest(ABC)の2つがあり、交互に開催されています。
作問者による解説スライドから解説放送まであり、競プロerに非常に優しいコンテストです。

ABCはその名の通り初心者向けのコンテストで、プログラミング初心者でも入力と出力が分かれば、最初の問題は解けるような問題に難易度が調整されています。

また、ほかにも CODE FESTIVAL や Code Formula 等、他の企業との連携コンテストも行っています。

その他のコンテスト


その他にも、下記のコンテストがあります。
Google Code Jam
Facebook Hacker Cup
Codeforces
Code chef

参考資料など


I科ブログリンク
ACM-ICPC とは? | ACM-ICPC 国際大学対抗プログラミングコンテスト
AIZU ONLINE JUDGE: Programming Challenge
TopCoder部
TopCoderでCodeProcessor+TZTester+FileEdit – Gulfweed
主にコーディング: TopCoderの登録方法
最強最速アルゴリズマー養成講座 プログラミングコンテストTopCoder攻略ガイド
プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~

工房メンバーによる解説等

torus711のアレ
いがメモ

One Comment on “競技プログラミング

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA