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

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

更新履歴

目次

実施期間

2019年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~7:45 朝食
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~7:45 朝食
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~7:45 朝食
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~7:45 朝食
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~7:45 朝食
9:00~12:00 講義6
12:00~13:00 昼食
14:30~16:40 JOI 2018/2019 表彰式・記念講演会
17:00~17:30 IOI 2019 日本代表選手
発表会
18:30~19:30 食事会
3月25日(月) 7:00~7:45 朝食
8:00~8:30 清掃
9:00 アンケートなど
10:00 解散

表彰式・日本代表発表会

3月24日(日) の 14:30~16:40 に, NTT DATA 駒場研修センターで第18回日本情報オリンピック JOI 2018/2019 表彰式を行います.
3月24日(日) の 17:00~17:30 に, NTT DATA 駒場研修センターで第31回国際情報オリンピック IOI 2019 アゼルバイジャン大会の日本代表選手発表会を行います.

開催告知を掲出しました(3/20追記).

講義

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

講義1
3月19日(火) 19:00~21:00
講師 : 髙谷悠太 先生 (東京大学教養学部理科一類 1年)
    IOI 2014 台湾大会 金メダル, IOI 2015 カザフスタン大会 金メダル, IOI 2016 ロシア大会 金メダル, IOI 2017 イラン大会 金メダル
題目 : 様々な segment tree
概要 : JOI でもしばしば出題される segment tree の応用例をいくつか紹介します.
講義2
3月20日(水) 16:00~18:30
講師 : 村井翔悟 先生 (東京大学大学院情報理工学系研究科コンピュータ科学専攻 修士2年)
    IOI 2010 カナダ大会 金メダル,IOI 2011 タイ大会 金メダル,IOI 2012 イタリア大会 金メダル,ACM-ICPC 2015 World Finals 金メダル,Google Code Jam 2015, 2016, 2017, 2018 世界大会出場
題目 : 大規模グラフアルゴリズム入門
概要 : 近年では, ソーシャルネットワークから得られるソーシャルグラフをはじめとして, グラフ構造で表される大規模データが重要性を増しています. このようなグラフデータを解析, 活用するために, さまざまな手法が提案されてきました. これらの手法を用いる場合, グラフの規模ゆえに, ナイーブなアルゴリズムでは実用的な時間で計算ができないことも多く, 効率の良い近似, ヒューリスティックなどのアルゴリズムも広く研究されてきました. 本講義では, 大規模グラフ解析で用いられる手法について, 主にアルゴリズムの観点から紹介します.
講義3
3月21日(木) 16:00~18:30
講師 : 佐藤竜馬 先生 (京都大学工学部情報学科 4 年)
    IOI 2014 台湾大会 銅メダル, ACM-ICPC 2019 世界大会出場
題目 : グラフ機械学習
概要 : 機械学習といえば, 画像や音声やテキストデータに対する応用が有名ですが, この講義では, 最近注目を集めているグラフデータに対する機械学習を紹介します.
講義4
3月22日(金) 16:00~18:30
講師 : 山下洋史 先生 (東京大学大学院情報理工学系研究科 博士 2 年)
    IOI 2010 カナダ大会 銀メダル
題目 : 充足可能性問題
概要 : 与えられた論理式を満たすことができるかを判定する充足可能性問題は, 計算機科学の基本的な問題であり, またさまざまな応用をもつため, 多くのソルバーが研究・開発されてきました. 充足可能性問題を解くソルバーで用いられている様々な手法や, 関連する話題について紹介したいと思います.
講義5
3月23日(土) 16:00~18:30
講師 : 城下慎也 先生 (株式会社 Preferred Networks)
    東京大学大学院情報理工学系研究科コンピュータ科学専攻修士課程修了, IOI 2011 タイ大会 銀メダル, ICPC 2016 世界大会出場
題目 : 競技プログラマーから見た強化学習
概要 : 本講義では, 近年, いくつかのゲームにおいて人間のプロプレイヤーに勝つ成果をあげ, 現在も活発に研究され続けている強化学習について, 基本となる考え方から最近の進展にかけてを, 競技プログラマーという視点から解説していきます.
講義6
3月24日(日) 9:00~12:00
講師 : 井上航 先生 (北九州工業高等専門学校 3 年)
    IOI 2018 日本大会 金メダル, APIO 2018 銀メダル
題目 : パズルを解くアルゴリズム
概要 : 人の手で解くのは難しいパズルもコンピュータを使うと簡単に解けることがあります. この講義では参加者にパズルを解くアルゴリズムを作ってもらいます. ミニコンテストも行います. ふるってご参加ください.

日本代表選手選考方法

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

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

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

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

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

競技時間 競技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)」に記載する.
使用できる用品 競技中は筆記用具 (鉛筆, シャープペン, ボールペン, 消しゴムなど) を使用できる. 筆記用具は本委員会では準備しないので持参すること.
計算用紙は本委員会が用意したものを使用すること.
衣類, 適度なアクセサリー・宝飾品類 (腕時計を除く), 英語の辞書 (電子辞書は不可) を使用することができる. また, 小さなマスコットを机の上に置くことができる.
詳細は英語の辞書・小さなマスコット・キーボードの持ち込みについてを参照のこと.
使用できる機器・ソフトウェア 本委員会が用意した機器と, 認められた方法で持ち込んだキーボードのみ使用できる.
詳細は英語の辞書・小さなマスコット・キーボードの持ち込みについてを参照のこと.

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

ハードウェア ノート型パーソナルコンピュータ (予定)
ソフトウェア (予定)
  • Ubuntu 18.04 LTS 64-bit 英語版
    http://www.ubuntu.com/download/desktop
    (Windows 7 Professional (64 bit) 上で動作する仮想マシンで競技を行います. (2/18更新))
  • 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 です. (2/18更新)
    http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html
  • 競技では Ubuntu 18.04 LTS の標準状態のデスクトップをカスタマイズしたものを使用する. 各ソフトウェアは標準リポジトリから apt-get でインストールできる最新のものを利用する予定である. ただし, 本会における動作確認の事情などにより, 最新版でないパッケージを使用する可能性もある. 競技で使用可能なソフトウェアに関する詳細は, 春季トレーニング合宿初日に行われる実機練習 (プラクティス) の時間に確認すること.
  • 後日, 練習用仮想マシンを配布する. 練習用仮想マシンの配布は, 春季トレーニング合宿実施までに Ubuntu Desktop (英語版) の開発環境に関する操作に慣れてもらうことを意図して行われる. ダウンロード用 URL は, 後日, 春季トレーニング合宿参加者にメールで通知する. (2/18追記)
出題される課題 アルゴリズムを設計しそのアルゴリズムを 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 つまたは複数の小課題からなる. 小課題に関する詳細は問題文中に記載する.
各小課題に対し, いくつかの採点用入力データをセットにして採点を行う. セット内の全ての採点用入力データに正解した場合に限り, その小課題分の得点が与えられる.
ソースを複数回提出した場合は, 提出された全てのソースが採点される. 各小課題に対し, 提出された全てのソースにおけるその小課題の得点の最大値が, その小課題の最終的な得点となる.
各課題の得点は, その課題に含まれる小課題の最終的な得点の合計である.
競技サーバに予期せぬ障害が発生した場合は, 最後に提出されたソースのみを採点の対象とする場合がある. 提出したソースは, 各自の競技用 PC に保存しておくことを勧める.
課題によってはこれとは異なる方法で採点するものもあるかもしれない. その場合, 採点方法の詳細は問題文および「実装上の注意 (Implementation Notice)」に記載される.
質問 質問がある場合は, 競技開始から 2 時間 30 分が経過するまで質問票を提出することができる. 質問への回答は「正しい」「正しくない」「ノーコメント」「課題の記述の中に答えはある」「無効」のいずれかである. 競技開始から 2 時間 30 分経過後も質問票を提出することはできるが, 競技時間内に回答するとは限らない.
実機練習 (プラクティス) 実機練習の時間中に, 競技用 PC を使用して解答作成・解答提出方法が確認できる. 操作方法, コンパイル方法, 解答提出方法などを実機練習の時間中に確認すること.
実機練習の時間中に, 競技用 PC に新たなソフトウェアやドライバをインストールすることはできない.
実機練習の時間中に, 競技用 PC に周辺機器や USB メモリなどの外部メディアを接続してはならない (キーボードを持ち込む競技参加者が動作確認のためにキーボードを接続する場合を除く).
小さなマスコットやキーボードを持ち込んで競技に参加する場合は, 実機練習の時間中に申請すること. 詳細は英語の辞書・小さなマスコット・キーボードの持ち込みについてを参照のこと.
解析の時間 競技終了後に競技結果を配布する. 解析の時間に, 採点用入出力データを用いて, 自分の提出したプログラムの動作確認を行うことができる.
競技結果について異議 (アピール) がある場合は「抗議票」を提出することができる. 「抗議票」は解析の時間中に提出すること. 解析の時間終了後のアピールは認めない.
禁止事項
  • 競技前 (実機練習の時間中も含む) および競技中に, 周辺機器や USB メモリなどの外部メディアを競技用 PC に接続してはならない (キーボードを持ち込む競技参加者が動作確認のためにキーボードを接続する場合を除く).
  • 競技用 PC には, いかなるデータもコピーしてはならない. 競技用 PC に新たなソフトウェアやドライバをインストールしてはならない.
  • 競技中は, 参考書・ノート・辞書などの資料を参照してはならない. 競技中は, 本委員会が用意した機器と, 認められた方法で持ち込んだキーボードのみ使用できる. それ以外の機器 (携帯電話・電卓・電子辞書など) や腕時計を使用してはならない.
  • 競技参加者が提出する解答プログラムは, 実行時に標準入出力以外にアクセスしてはならない. 一時ファイルの作成, ネットワークへのアクセス, 外部プログラムの呼び出しは禁止である.
  • 競技中は, 競技システムを通じて解答を提出したり提出結果を確認する場合を除き, ネットワークやインターネット上のいかなるコンピュータへのアクセスも試みてはならない. 競技システムを改ざんしたり, セキュリティを侵害することを試みてはならない.
  • 自分自身に割り当てられた競技用 PC とアカウントを使用すること. 自分自身に割り当てられたアカウント以外のアカウントへのアクセス権を得ようと試みてはならない. 自分自身に与えられた競技用 PC 以外のコンピュータにふれてはならない.
  • 競技中は, 本委員会のスタッフを除き, 他の人と連絡を取ってはならない.
  • Windows 上で動作する仮想マシン上で競技を行うこと. 競技中は Windows 環境のデスクトップに戻ってはならない.
その他 競技参加者は, 解析の時間中に会場責任者の許可を得て競技用 PC に USB メモリを接続して, ソースやデータなどを USB メモリにコピーして持ち帰ることができる. 自分が競技中に作成したソースやデータなどを持ち帰りたい人は, USB メモリを持参すること.
競技課題および採点用入出力データは, 後日, 本委員会のウェブページで公開する.

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

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

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

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

オープンコンテスト

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

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

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

個人情報の扱いについて

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