第17回日本情報オリンピック (JOI 2017/2018) 春季トレーニング合宿について

2018年2月28日
情報オリンピック日本委員会

更新履歴

目次

実施期間

2018年3月19日(月) 15:00 ~ 25日(日) 10:00

会場

競技, 講義6, 表彰式 講演会 選手発表会   講義1~5, 講評 解説, 宿泊
 NTT DATA 駒場研修センター    国立オリンピック記念青少年総合センター
 〒153-0041 東京都目黒区駒場 2-18-2     〒151-0052 東京都渋谷区代々木神園町3番1号
 電話 03-5738-3850     電話 03-3469-2525
 URL http://www.nttdata-univ.co.jp/company/access.html    URL http://nyc.niye.go.jp

春季トレーニング合宿 スケジュール

競技実施時間
競技1 3月20日(火) 9:00~14:00 (5 時間)
競技2 3月21日(水) 9:00~14:00 (5 時間)
競技3 3月22日(木) 9:00~14:00 (5 時間)
競技4 3月23日(金) 9:00~14:00 (5 時間)
春季トレーニング合宿 スケジュール
赤字 国立オリンピック記念青少年総合センターで実施
青字 NTT DATA 駒場研修センターで実施
午前 午後
3月19日(月) 15:00 集合
15:00~17:30 ガイダンス・実機練習
18:00~19:00 夕食
19:00~21:00 講義1
3月20日(火) 7:00~8:00 朝食
9:00~14:00 競技1
14:00~15:00 昼食
15:00~15:30 解析1

(解析終了後, 国立オリンピック
記念青少年総合センターに移動)
16:00~18:30 講義2
18:30~19:30 夕食
19:30~21:00 講評・解説1
3月21日(水) 7:00~8:00 朝食
9:00~14:00 競技2
14:00~15:00 昼食
15:00~15:30 解析2

(解析終了後, 国立オリンピック
記念青少年総合センターに移動)
16:00~18:30 講義3
18:30~19:30 夕食
19:30~21:00 講評・解説2
3月22日(木) 7:00~8:00 朝食
9:00~14:00 競技3
14:00~15:00 昼食
15:00~15:30 解析3

(解析終了後, 国立オリンピック
記念青少年総合センターに移動)
16:00~18:30 講義4
18:30~19:30 夕食
19:30~21:00 講評・解説3
3月23日(金) 7:00~8:00 朝食
9:00~14:00 競技4
14:00~15:00 昼食
15:00~15:30 解析4

(解析終了後, 国立オリンピック
記念青少年総合センターに移動)
16:00~18:30 講義5
18:30~19:30 夕食
19:30~21:00 講評・解説4
3月24日(土) 7:00~8:00 朝食
9:00~12:00 講義6
12:00~13:00 昼食
14:30~16:40 JOI 2017/2018 表彰式
  14:30~15:30 記念講演会
  15:40~16:40 表彰式
17:00~17:30 IOI 2018 日本代表選手
発表会
18:00~19:00 食事会
3月25日(日) 7:00~8:00 朝食
8:00~8:30 清掃
9:00 アンケートなど
10:00 解散

表彰式・日本代表発表会

3月24日(土) の 14:30~16:40 に, NTT DATA 駒場研修センターで第17回日本情報オリンピック JOI 2017/2018 表彰式を行います.
3月24日(土) の 17:00~17:30 に, NTT DATA 駒場研修センターで第30回国際情報オリンピック IOI 2018 日本大会の日本代表選手発表会を行います.
式次第はこちら (PDF283KB)

講義

春季トレーニング合宿期間中に, 以下の予定で情報科学に関する講義を行います. 詳細は決まり次第このページでお知らせします.

講義1
3月19日(月) 19:00~21:00
講師 : 小倉拳 先生 (東京大学工学部計数工学科 3 年)
    IOI2014 台湾大会 銀メダル
題目 : 簡潔データ構造
概要 : 皆さんはいろんなデータ構造を学んできたと思いますが, サイズNのデータ構造の前処理に O(N log N) の時間やメモリを使うことが多いのではないでしょうか? 現代は10億オーダーの人口の国が増えたり, 膨大な遺伝子情報を扱ったりする時代, そろそろ log をつけるのが苦しいでしょう. 本講義では実用性も兼ね備えた簡潔なデータ構造をいくつか紹介します.
講義2
3月20日(火) 16:00~18:30
講師 : 岩田陽一 先生 (国立情報学研究所助教)
    TCO'10 Marathon 優勝, ICFPC 3度優勝, GCJ'09 3位など
    「プログラミングコンテストチャレンジブック」共著者
題目 : 双対性
概要 : 効率的に解ける組合せ最適化問題の背後にある双対性の理論と応用例を紹介します.
講義3
3月21日(水) 16:00~18:30
講師 : 松下祐介 先生 (東京大学理学部情報科学科 3 年)
    JOI 2012/2013 優秀賞, JOI 2013/2014 優秀賞
題目 : 純粋関数型データ構造
概要 : 最近訳書が出た Chris Okasaki 著「純粋関数型データ構造」から内容を絞ってわかりやすく解説します. Haskell Platform ないし GHC が入ったコンピュータが手元にあるとより楽しめると思います.
講義4
3月22日(木) 16:00~18:30
16:00~16:10 未踏事業紹介(独立行政法人情報処理推進機構(IPA) 神島様)
16:10~18:30 講義(西尾先生)
講師 : 西尾泰和 先生 (サイボウズ・ラボ株式会社/一般社団法人未踏 理事)
題目 : 実社会の問題をアルゴリズムで解決する
概要 : 競技プログラミングの問題を解くのと, 実社会の問題を解くのにはどんな違いがあるか? 講師がアルゴリズム作成に携わったトラック配送ルート最適化問題を題材にして解説する.
講義5
3月23日(金) 16:00~18:30
講師 : 川﨑理玖 先生 (筑波大学附属駒場高等学校 3 年)
    IOI 2016 ロシア大会 銀メダル, IOI 2017 イラン大会 金メダル
題目 : 動的木について
概要 : 動的木を管理するデータ構造と, その応用を解説します.
講義6
3月24日(土) 9:00~12:00
講師 : 河原井啓 先生 (筑波大学附属駒場高等学校 3 年)
    IOI 2017 イラン大会 金メダル
題目 : チューター企画「SKIコンビネータコンテスト」
概要 : SKI コンビネータというものを用いてプログラミングをします. パズルのような感覚で解けるので, 楽しんで参加してください. 事前に解説をする予定ですので, 予習等は必要ありません.

日本代表選手選考方法

春季トレーニング合宿期間中, 3月20日, 21日, 22日, 23日の 4 日間にかけて合計 4 回の競技を実施します. 各競技日に 3 題または 4 題の課題が出題され, どの課題も 100 点満点です.

春季トレーニング合宿は全日程参加が原則ですが, 事情がある場合は, 春季トレーニング合宿の一部の行事の欠席を認めることがあります. 競技の一部を欠席した場合でも失格にはなりませんが, 欠席した競技の得点は 0 点になります. 欠席した競技に対して特別な措置 (得点調整など) は実施しません.

国際情報オリンピック派遣日本代表選手選考に関する内規 (2015年9月30日改訂版) に基づき, 次の方法で IOI 2018 日本代表選手を決定します.

  1. 春季トレーニング合宿の競技 1〜4 の合計点の高い選手を IOI 2018 日本代表選手とする.
  2. 1 が同点の選手の中では, 本選の得点の高い者を IOI 2018 日本代表選手とする.
  3. 1 も 2 も同点の選手の中では, 春季トレーニング合宿の競技 2〜4 の合計点の高い者を IOI 2018 日本代表選手とする.
  4. 1〜3 がすべて同点の選手の中では, 春季トレーニング合宿の競技 3・4 の合計点の高い者を IOI 2018 日本代表選手とする.
  5. 1〜4 がすべて同点の選手の中では, 春季トレーニング合宿の競技 4 の得点の高い者を IOI 2018 日本代表選手とする.
  6. 1〜5 がすべて同点の選手の中では, 情報オリンピック日本委員会による抽選で IOI 2018 日本代表選手を決定する.

【補足】 今年度の IOI は, 日本が開催国のため日本代表選手 4 名の他に, 順位付けの対象にはなりませんが, 全てのプログラムに参加できる, もう 4 名のチームを派遣することが許可されています. そのため, 合宿は代表選手4名に加え, このチーム 4 名の選考も兼ねています.

春季トレーニング合宿競技実施方法概要

競技時間 競技1 3月20日(火) 9:00~14:00 (5 時間)
競技2 3月21日(水) 9:00~14:00 (5 時間)
競技3 3月22日(木) 9:00~14:00 (5 時間)
競技4 3月23日(金) 9:00~14:00 (5 時間)
課題数 各競技日に 3 題または 4 題の課題が出題される.
配 点 配点は各課題 100 点である.
各課題がいくつかの小課題に分割されることがある. 小課題の配点は問題文中に記載する.
使用できるプログラミング言語 C++ (C++ のバージョンは C++14)
競技システムで使われるコンパイルオプションは, 競技の際に配布される「実装上の注意 (Implementation Notice)」に記載する.
使用できる用品 競技中は筆記用具 (鉛筆, シャープペン, ボールペン, 消しゴムなど) を使用できる. 筆記用具は本委員会では準備しないので持参すること.
計算用紙は本委員会が用意したものを使用すること.
衣類, 適度なアクセサリー・宝飾品類 (腕時計を除く), 英語の辞書 (電子辞書は不可) を使用することができる. また, 小さなマスコットを机の上に置くことができる.
詳細は英語の辞書・小さなマスコット・キーボードの持ち込みについてを参照のこと.
使用できる機器・ソフトウェア 本委員会が用意した機器と, 認められた方法で持ち込んだキーボードのみ使用できる.
詳細は英語の辞書・小さなマスコット・キーボードの持ち込みについてを参照のこと.

また, 本委員会が事前に準備し使用を許可したソフトウェアのみ使用できる.
競技で使用予定の機器・環境は以下の通りである. (変更される場合がある)

ハードウェア ノート型パーソナルコンピュータ HP ProBook 450 G3
  • CPU: Core i5-6200U
  • メモリ: 16GB
  • ハードディスク: 500GB
  • ディスプレイ: 15.6インチ カラー液晶 (1366×768)
  • マウス: 光学式スクロールマウス

ソフトウェア (予定)
  • Ubuntu 16.04 LTS 64-bit 英語版
    http://www.ubuntu.com/download/desktop
    (Windows 7 Professional (64 bit) 上で動作する仮想マシンで競技を行います. )
  • gcc/g++, python, ruby 2.3, gdb, DDD
  • eclipse-cdt, Geany
  • Gnu Emacs, vim, vim-gnome (gvim), gedit, Kate, KWrite, SciTE, joe, nano
  • C++ STL Document (英語)
  • Ubuntu ディストリビューションに含まれる, その他のソフトウェア

競技環境に関する補足
  • 競技で使用する Ubuntu は, Windows 7 Professional (64 bit) 上で動作する Oracle VM VirtualBox のゲスト OS です.
    http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html
  • 競技では Ubuntu 16.04 LTS の標準状態のデスクトップをカスタマイズしたものを使用する. 各ソフトウェアは標準リポジトリから apt-get でインストールできる最新のものを利用する予定である. ただし, 本会における動作確認の事情などにより, 最新版でないパッケージを使用する可能性もある. 競技で使用可能なソフトウェアに関する詳細は, 春季トレーニング合宿初日に行われる実機練習 (プラクティス) の時間に確認すること. (2018/03/14 追記)
出題される課題 アルゴリズムを設計しそのアルゴリズムを C++ で実装する課題が出題される. 実行時の実行時間と使用メモリに制限があるので, 解法のアルゴリズムの効率が重要となる. 採点用入力データは, 効率が異なる解法を識別できるよう調整されている.
春季トレーニング合宿では, 日本情報オリンピックの予選・本選とは異なる形式の課題が出題されるかもしれない. 例えば, (ソースを提出せずに) 出力データのみを提出する課題 (Output only task) や, 出力データの質を評価し採点する課題, 指定された方法でやりとりを行う応答型課題 (Reactive task), 提出した複数のプログラム間で通信を行う通信型課題 (Communication task) 等が出題されるかもしれない. また, 競技中のフィードバックが制限される課題が出題されるかもしれない. その場合, 課題の詳細は問題文および「実装上の注意 (Implementation Notice)」に記載される.
過去の合宿で出題された課題が日本情報オリンピック 春季トレーニング合宿 記録で公開されている.
解答方法・解答提出方法 課題の趣旨に合致するプログラムを作成し, 解答提出用 Web インタフェースからソースを提出すること. 解答プログラムは, 入力を標準入力から読み込み, 出力を標準出力に出力し, 正常終了すること (0 を返すこと).
各課題ごとに, ソースを提出することができる回数は 50 回までである.
各課題ごとに, 最後の提出から 1 分間は解答を提出することができない.
ただし, 課題によってはこれとは異なる方法で解答を提出するものもあるかもしれない. その場合, 提出方法の詳細は問題文および「実装上の注意 (Implementation Notice)」に記載される.
フィードバック 競技中に提出されたソースは「実装上の注意 (Implementation Notice)」に記載されているコンパイルオプションを用いてコンパイルされ, 問題文中の例と, 全ての採点用入力データに対して実行される. その結果がフィードバックとして競技参加者に通知される. フィードバックを利用することで, 自分の提出したソースが問題文の仕様を満たしているかどうかを確認することができる. また, その課題に関する自分の得点を競技中に知ることができる.
フィードバックの詳細については実機練習 (プラクティス) の時間に確認することを勧める.
フィードバックが与えられるまでに時間がかかることがある. 競技終了 15 分前までに提出されたソースには競技時間内にフィードバックが与えられる. それ以降に提出されたソースには競技時間内にフィードバックが与えられるとは限らない.
競技中のフィードバックが制限される課題が出題されるかもしれない. その場合, 詳細は問題文および「実装上の注意 (Implementation Notice)」に記載される.
採点方法 採点用入力データに対する出力の正誤で得点を定める. 実行時の実行時間と使用メモリに制限がある. 制限は課題ごとに異なり, 競技時に配布される「実装上の注意 (Implementation Notice)」に記載される.
各課題がいくつかの小課題に分割されることがある. 小課題に関する詳細は問題文中に記載する.
採点プログラムは, 「実装上の注意 (Implementation Notice)」に記載されているコンパイルオプションを用いて解答プログラムをコンパイルし, 採点用入力データに対して実行する. 時間・メモリの制限を満たして正常終了し, かつ, 出力が正しい場合に, その採点用入力データへの出力は正解となる. 1 つまたは複数の入力データをセットにして採点を行う. 1 つのセット内の全てのデータに正解した場合に限り, そのセット分の得点が与えられる.
ソースを複数回提出した場合は, 提出された全てのソースが採点され, 提出されたソースの得点の最大値がその課題の得点となる.
ただし, 競技サーバに予期せぬ障害が発生した場合は, 最後に提出されたソースのみを採点の対象とする場合がある. 提出したソースは, 各自の競技用 PC に保存しておくことを勧める.
課題によってはこれとは異なる方法で採点するものもあるかもしれない. その場合, 採点方法の詳細は問題文および「実装上の注意 (Implementation Notice)」に記載される.
質問 質問がある場合は, 競技開始から 2 時間 30 分が経過するまで質問票を提出することができる. 質問への回答は「正しい」「正しくない」「ノーコメント」「課題の記述の中に答えはある」「無効」のいずれかである. 競技開始から 2 時間 30 分経過後も質問票を提出することはできるが, 競技時間内に回答するとは限らない.
実機練習 (プラクティス) 実機練習の時間中に, 競技用 PC を使用して解答作成・解答提出方法が確認できる. 操作方法, コンパイル方法, 解答提出方法などを実機練習の時間中に確認すること.
実機練習の時間中に, 競技用 PC に新たなソフトウェアやドライバをインストールすることはできない.
実機練習の時間中に, 競技用 PC に周辺機器や USB メモリなどの外部メディアを接続してはならない (キーボードを持ち込む競技参加者が動作確認のためにキーボードを接続する場合を除く).
小さなマスコットやキーボードを持ち込んで競技に参加する場合は, 実機練習の時間中に申請すること. 詳細は英語の辞書・小さなマスコット・キーボードの持ち込みについてを参照のこと.
解析の時間 競技終了後に競技結果を配布する. 解析の時間に, 採点用入出力データを用いて, 自分の提出したプログラムの動作確認を行うことができる.
競技結果について異議 (アピール) がある場合は「抗議票」を提出することができる. 「抗議票」は解析の時間中に提出すること. 解析の時間終了後のアピールは認めない.
禁止事項
  • 競技前 (実機練習の時間中も含む) および競技中に, 周辺機器や USB メモリなどの外部メディアを競技用 PC に接続してはならない (キーボードを持ち込む競技参加者が動作確認のためにキーボードを接続する場合を除く).
  • 競技用 PC には, いかなるデータもコピーしてはならない. 競技用 PC に新たなソフトウェアやドライバをインストールしてはならない.
  • 競技中は, 参考書・ノート・辞書などの資料を参照してはならない. 競技中は, 本委員会が用意した機器と, 認められた方法で持ち込んだキーボードのみ使用できる. それ以外の機器 (携帯電話・電卓・電子辞書など) や腕時計を使用してはならない.
  • 競技参加者が提出する解答プログラムは, 実行時に標準入出力以外にアクセスしてはならない. 一時ファイルの作成, ネットワークへのアクセス, 外部プログラムの呼び出しは禁止である.
  • 競技中は, 競技システムを通じて解答を提出したり提出結果を確認する場合を除き, ネットワークやインターネット上のいかなるコンピュータへのアクセスも試みてはならない. 競技システムを改ざんしたり, セキュリティを侵害することを試みてはならない.
  • 自分自身に割り当てられた競技用 PC とアカウントを使用すること. 自分自身に割り当てられたアカウント以外のアカウントへのアクセス権を得ようと試みてはならない. 自分自身に与えられた競技用 PC 以外のコンピュータにふれてはならない.
  • 競技中は, 本委員会のスタッフを除き, 他の人と連絡を取ってはならない.
  • Windows 上で動作する仮想マシン上で競技を行うこと. 競技中は Windows 環境のデスクトップに戻ってはならない.
その他 競技参加者は, 解析の時間中に会場責任者の許可を得て競技用 PC に USB メモリを接続して, ソースやデータなどを USB メモリにコピーして持ち帰ることができる. 自分が競技中に作成したソースやデータなどを持ち帰りたい人は, USB メモリを持参すること.
競技課題および採点用入出力データは, 後日, 本委員会のウェブページで公開する.

英語の辞書・小さなマスコット・キーボードの持ち込みについて

競技参加者は, 筆記用具以外に, 衣類, 適度なアクセサリー・宝飾品類 (腕時計を除く), 英語の辞書, 小さなマスコット, キーボードを持ち込んで競技に参加することができます. ただし, 持ち込む方法には次のような制限があります.

衣類, 適度なアクセサリー・宝飾品類 (腕時計を除く) を持ち込む方法
英語の辞書, 小さなマスコット, キーボードを持ち込む方法
注意事項

上記の規則は変更されることがあります. 変更があった場合は, このページでお知らせします.

オープンコンテスト

春季トレーニング合宿競技と同じ時間帯に, 同じ課題を使ったオープンコンテストをオンラインで行う予定です. オープンコンテストにはどなたでも参加できます.

オープンコンテストに用いる競技システムの仕様は, 春季トレーニング合宿競技で用いる競技システムと同一ではありません.

参加希望者はオープンコンテストのページからアカウント登録を行なって参加してください. オープンコンテストに関する情報は, オープンコンテストのページに随時掲載予定です.

個人情報の扱いについて

個人情報の扱いについては, 情報オリンピック日本委員会の「個人情報保護方針」をご覧ください.