学びたいことと、学ぶべきことと、学べることの区別がついてない人間の進捗管理この広告は、90日以上更新していないブログに表示しています。R1に参加して、環境構築とか環境構築とか辛かった人を散見したので記事を書くことにした。併設された分散処理のコンテストです。言うと、100並列で競技プログラミングをやるコンテスト。2016年はGCJのRound2進出者に参加権がありました。環境について普段の競技プログラミングとは異なるところもあるので、思いついたところのまとめ。Mac/C++で参加しました。並列化用ライブラリMPIっぽい関数を実装したライブラリがコンテストの運営から配られます。コンテスタントはそれを使ってプログラムを実装します。基本型の送受信用キューへの追加/読み出しと、送受信用キューの内容の送受信程度でしょうか。ライブラリの詳しい仕様を把握しないまま書いたら書けてしまったので詳しい仕様は言えない。関数を呼んで取得する。問題ごとに入力用の関数が用意されていて、入力用関数の仕様は問題文中で与えられる。いうヘッダファイルに実装されているので、それをインクルードする必要がある。ヘッダファイルはソースと同じディレクトリの中に置いてね。sample-inputをくれるヘッダファイルは問題文の下のほうにあるリンクからダウンロードできました。答えの出力はどこか一つのノードが標準出力に吐けばよい。Guideに書かれてある。MacLinuxかMacがメイン環境の人は環境構築がしやすいから幸せだ。書かれてあるリンクから落としてくる。dcj.tar.bzとかやって展開する。../../executable/とやると環境構築おわり。config.jsonにどのコンパイラを使うかとかを指定するようになってるので、「コンパイラみつかんねーよ」と怒られたりしたらconfig.jsonを書き換えるといいかもしれない。sample-configsの中にいくつか設定例があったので、自分で書き換える必要が出てくることはないかも。書かれてあるコマンドを打てばよい。--output=allとか書いてスクリプトにまとめとくと便利。WindowsCygwinで環境構築しようとしたら失敗した。READMEとか読んだら「MinGWでやれw」って書かれてたから、MinGWでやったら上手く行くんじゃないかな。提出はGCJとは異なりソースコードのみを提出する。例によってsmallとlargeのデータセットがある。smallを提出すると、コンテストサイト側でテストが行われ2分後に結果が分かる。提出後の2分間は結果も分からないし、再提出することもできない。largeはsmallが通った場合に提出でき、コンテスト終了まで何度でも再提出できる。largeの採点はコンテスト終了後に行われる。practiceについてDCJは本番前にGCJR2進出者を対象にしてDCJ前にオンラインで練習会が開かれる。今年の場合、練習会の日時・URLはメールで告知され、コンテストスケジュールには載ってなかった。難しい問題は出なかった印象。R2進出者であれば、シングルノード版の解法を書くことにはまず困らない。samllはシングルノードでも解ける程度の制約、largeは並列化しないと無理ゲーな制約。Distributedと名がつくだけあり、シングルノードでも解ける制約のsmallの配点がものすごく低い。長文・乱文になりそうなので要約を用意しました。JAG合宿に参加してきたので参加記を。解説(お気持ちだけ)月別アーカイブ参加グループプログラミングはてなブログをはじめよう!konjo_pさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。