目次

TopCoderとは

ほぼ毎週開催されているプログラミングの大会です(問題文は英語)。

上位と下位で二組に分かれているので、初心者でもある程度気軽に参加できます。

TopCoder公式サイト

使用可能言語

java、C++、C#、VB の4種類の内いづれかを使用してプログラミングを行います。

ただし、Marathon Match では Python も使用可能。

参加資格

学生から社会人まで誰でもおk。

たとえ英語が分からなくても、問題の概要さえ分かればいいのでYahoo!翻訳などを使えば大丈夫です。

※ Macの場合、問題をコピペできないので手打ちするしかないです。
 ただし、Eclipseのプラグイン設定を行えばコピペできるようになる。

また、賞金を受け取れるのは18歳以上となっています。

開催日時

ほぼ毎週開催されていますが、不定期なので下記から確認を行う必要があります。

http://www.topcoder.com/tc?module=Static&d1=calendar&d2=thisMonth

上記のサイトで表示されている時間は、アメリカ時間となっています。

そこで、Googleカレンダー利用することで、スケジュール管理を容易にすることができます。

やり方はGoogleカレンダーを開き、他のカレンダーの追加からURLを指定して日程をインポートするだけ。

URLの取得の方法は、ココにアクセスして、取得したいデータを選択すると、インポート用のURLが発行されます。

あとは貼付けてインポートするだけで、自動的に日本の時間に修正してくれます。

会員登録

登録は下記から行って下さい。

https://www.topcoder.com/reg/

Step1

Run My Own Contests

出題問題を作成したい人はチェック

□ I want to start using TopCoder Direct | tell me more

I Want to Compete

Single Round Matchに参加する人はチェック

□ on TopCoder | tell me more

TopCoder Studioをソフトを使い人?はチェック

□ on TopCoder Studio | tell me more

Step2

は入力必須項目です。

[ Name and Contact ]
First Name:名前(例、Taku)
Last Name:苗字(例、Ikebata)
Current Address 1:市町村 (例、△△-shi)
Current Address 2:市町村以降 (例、1-1, ☆☆ 1-chome)
Current Address 3:
City:県名 (例、○○-ken)
State (US Only):
Postal Code:
Province:
Country:国籍 (例、Japan)
Country to represent:国籍 (例、Japan)
Timezone:標準時 (例、Asia/Tokyo)
Phone Number:
Email Address:メールアドレス
Confirm Email Addressメールアドレス
Email Notifications:メールで知らせて欲しい情報 (全チェック推奨)
□ Algorithm Competitions
□ Software Development Opportunities
PayPal? X Contests and Opportunities powered by TopCoderv?
□ Employment Opportunities
TopCoder News & Events
Enable Member Contact:会員同士の連絡の可否 (どうせやるなら「Yes」選択するんだ!)
Show/Hide earnings:獲得金額の表示の可否 (どうせやるなら「Show」選択するんだ!)


[ Account ]
Username:競技等で表示される名前 (例、batako)
Password:パスワード
Confirm Password:パスワード
Secret Question:IDとPWを忘れた時に使用する秘密の質問 (例、Who am I?)
Secret Question Response:秘密の質問の答え (例、You're a sexual pervert.)
Quote:ユーザー情報と一緒に表示される文字
Student/Professional:学生か職業人か。ニートはどっちだろう?

Step3

は入力必須項目です。

[ Demographic Information ]
Age:年齢 (例、18 - 24)
Gender:性別 (例、male)
Ethnic Background:人種(例、Asian or Pacific Islander)
Primary Interest in TopCoder:TopCoderの何に惹かれたか (例、Technology Competition)
Shirt Size:シャツのサイズ (何かしらのイベントでもらえることがあるらしい)
College Major:専攻 (例、Computer Information Systems)
College Major Description:専攻の簡単な説明 (例、Graduate School of Engineering)
Degree Program:課程 (例、Masters)
Graduation Year:卒業年 (例、2012)
Graduation Month:卒業月 (例、March)
Clubs / Organizations:所属学会 (例、None)
Other Clubs / Organizations:
School:学校名(例、Fukuoka Institute of Technology)
Show / hide my school:学校名表示の可否 (どうせやるなら「Show」選択するんだ!)
GPA:
GPA Scale:
Resume:
How did you hear about TopCoder?:TopCoderについてどのように知ったか (例、Non-Member)
Details:簡単な説明 (例、I heard TopCoder from a younger student.)

Step4

メールアドレスに認証用URLが送られるので、そのURLで認証すれば登録完了。

レーティング

自分の相対的なレベルを表すレーティングがあり、レーティングによってユーザ名の色が変化します。

レーティングが1200以上の人はDIV 1、 1200未満の人はDIV 2に振り分けられます。

2200+赤色
1500-2199黄色
1200-1499青色
↑ DIV 1 ↓ DIV 2
0900-1199緑色
0001-0899灰色
初参加白色
管理者オレンジ色

になるとレッドコーダーと呼ばれ、大変尊敬されます。

特に赤に白丸が付いている人は赤色の中でも優秀な成績を収めている人たちです。

大会の方式

SRM (Single Round Match)

SRMはLv1の250点、Lv2の500点、Lv3の1000点の3問の問題を75分で解答するコンテストです。

解答が早ければ早いほど高得点となる。

どの問題からでも挑戦することができます。

エントリーはコンテスト開始3時間前から5分前までArenaで行えます。

レーティングが1200以上のユーザーはDIV1、それ以外のユーザーはDIV2の問題を解くことになります。

DIV1とDIV2とで出題される問題セットは異なるが、DIV1のLv1とDIV2のLv2は共通問題であることが多い。


SRMは以下の4つのフェーズに分かれている。

1、Coding Phase(75分)

指定されたクラスとメソッドを作成し、各問題に解答する

言語はJava, C++, C#, VBから選択

プログラムの実行時間は2秒以下にしなければ不正解扱いになる

2、Intermission(5分)

休憩時間

3、Challange Phase(15分)

同じルーム(近いレートの20人1部屋)の参加者のコードを見ることができる

バグを誘発しそうな入力を「チャレンジ」し、

成功すると50点獲得&バグのあったコードが不正解に、失敗すると25点減点

4、System Testing Phase(不定)

システムが厳密にコードをテストし、点数が確定

注意

以下の点に注意しましょう。

  • プログラムの実行は制限時間は2秒となっています。2秒を超えると誤答となります。
  • メモリの使いすぎも誤答となります。
  • 再帰関数を使用する場合は再帰のし過ぎによるスタックオーバーフローに注意しましょう。

Marathon Match

Marathon Matchは比較的長期間にわたるコンテストで、厳密に解を求めることができないであろう問題が出題される。

得点の計算方法は問題によって異なるが、基本的にはより良い近似解を求めると高得点が得られる。

Marathon Matchで使用可能な言語はC++/Java/C#/VB/Pythonの5種類。

SRMと同様に、開催スケジュールは公式ホームページのイベントカレンダーに掲載されている。

開催期間は基本的に1週間または2週間である。

Bug Race

こういうのがあるらしいけどよく分からん。

大会参加方法

1.My TopCoderページの左メニューの "Competitions" => "Algorithm" => "Launch Arena" から起動

launch.png

2.作成したアカウントのIDとPasswordでログインします

login.png


main.png

3.

SRMでは、コンテスト開始3時間前からエントリー可能

"Active Contests" => "Register" でエントリー

開始5分前から"Enter"で振り分けられたルームへ移動可能

resist.png

4.

ルームへ移動するとこんな画面になる

枠で囲った部分に現在のフェイズが表示され、

枠から問題選択 (200/550/1100)

緑枠("Summary")から同じルームの人の解答状況が見れる、チャレンジもここから

枠("Chat Area")には、会話だけでなく、同じルームの人がコンパイルした、解答した、などの状況が表示される

room.png

5.

問題を選択すると、この画面が表示される

使用する言語の選択、問題を読む、コンパイル、テスト、提出をここから行う

PythonはGoogleCodeJam?のシステムに対応させるためのものらしいのでSRMで使える予定は無いっぽい

下のテキストエリアに指定されたクラス名、指定されたメソッド名のコードを記述していく

予約語、コメント等は色分けされるが、コード補完等の機能は無い

problem.png

6.

"Summary"を開くと、同じ部屋の参加者(コンテスト終了後は全ての参加者、画像は終了後)の解答状況を見ることができる

解答の閲覧方法は 200/550/1100 それぞれのフィールドをダブルクリックすることで各問題の解答を閲覧できる。

スコアの色は使用した言語を表していて、緑(Java)(C++)、(C#)、水色(VB)となっている

人口はC++が圧倒的に多い感じ

summary.png

7.

得点をダブルクリックで、そのユーザーが提出したコードを見ることができる

左下の"Challenge"から、バグりそうな値を入力することでチャレンジできる

不正解を出力させるだけでなく、実行時間が2秒以上になる入力もチャレンジ成功になる

チャレンジするには他人のコードを読まなければならないので他言語も理解できる必要がある(VBだと攻撃されにくそう)

20080720080414.jpg

開発環境の構築

大会では自分の好きなソフトでプログラムを作成しコピペして実行すればおk。

ただ、Arenaだけを用いて作成するなら、プラグインの設定すれば開発が楽になるかも。

あと、Eclipseっていうソフト使うならTopCoder用のプラグインがあるので作業の手間が減って便利。

Eclipseのインストールと使い方はココ見ればおk。

Arenaのプラグイン設定とEclipseのプラグイン設定は、また後ほど。

Arenaのプラグイン設定(まだ)

1. まず初めに必要なファイルをココからダウンロード。

  • TZTester.jar
  • FileEdit?.jar
  • CodeProcessor?.jar

2. メニューから「Options」>「Editor」をクリック。

plugin1.png

3. 「Browse」ボタンを押し、先ほどダウンロードしたjarファイルのうち「TZTester.jar」と「FileEdit?.jar」を選択して「開く」を押す。

ウィンドウのボタンが文字化けする場合がありますが、左が「開く」、右が「取り消し」だと思えば問題ない。

4. 「Common ClassPath?」に先ほど選択したファイルが表示されていることを確認。

5. 「Add」ボタンを押して表示されたウィンドウに以下の内容を入力して「OK」ボタンを押す。

  • Name → CodeProcessor?
  • EntryPoint? → codeprocessor.EntryPoint?
  • ClassPath? → 入手したCodeProcessor?.jarのファイルパス
plugin2.png

Eclipseのプラグイン設定

1. ヘルプ>新規ソフトウェアのインストール...

2. 「http://fornwall.net/eclipsecoder/

http://d.hatena.ne.jp/gnarl/20100201/1264971398

http://d.hatena.ne.jp/yassan02/20090208

過去問

SRMの過去問は"Practice Rooms"から選択、DIV1が1軍、DIV2が2軍問題

practice.png

過去問一覧

ココにうpしていく予定です。

アルゴリズム体操

ココにうpしていく予定です。

役に立ちそうな記事


添付ファイル: file20080720080414.jpg 333件 [詳細] fileroom.png 286件 [詳細] fileproblem.png 266件 [詳細] fileresist.png 289件 [詳細] filepractice.png 288件 [詳細] filemain.png 330件 [詳細] filelogin.png 303件 [詳細] filelaunch.png 318件 [詳細] fileplugin1.png 317件 [詳細] filesummary.png 285件 [詳細] fileplugin2.png 268件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-01-16 (土) 18:03:29 (435d)