第2回授業のコンテスト解説
注意:リンク先ファイルは授業開始後にアップロードされる.
成績評価
前回同様,本番コンテスト結果とレポートの内容により評価する.
- 本授業への出席とレポートの提出は必須である.
- 一度の授業で複数回コンテストを実施する.最後に実施したコンテスト(本番コンテスト)の結果を成績評価に反映する. したがって,本番コンテストでより早く,より多くの問題について正答しているとより良い成績になる.
- 各授業の本番コンテストで,コンテストシステム上に一度でもソースコードを提出したら授業へ出席したと判定する.
- 正答でなくとも出席と判定するので,一問も解けない場合でも何らかのソースコードを提出すること.
- 不正(レポートの剽窃等)を行った学生および不正を援助した学生は処罰される.
競技プログラミングの定番テクニックの一部紹介
練習コンテスト(Contest 3-1)
紹介した定番テクニックに関連する問題を出題します.
ルール
- すべての問題で実行時間制限と記憶領域制限が設定されている. 問題ごとの制限を確認するには,コンテスト開始後に競技参加者向けのトップ画面の
Problemset
をクリックせよ.
- 回答には C(C99),C++(C++11),Java が利用できる.
- コンテスト中にウェブ検索や書籍等を使って調べものをしても良い.
- ソースコードの雛型などの電子的準備をしても良い.
- ただし流用して良いのは自分が書いたコードのみであり,他者が書いたコードを複写してはならない.
- 練習コンテストの結果は成績評価の対象外である.
コンテストページ
- コンテストシステム(DomJudge)の使い方
- コンテストサイト
- 右上に「contest:」というプルダウンメニューから「Contest3-1」を選ぶ.
- 開始予定時刻:2021-06-03 ??:?? (JST) 【授業中にアナウンスします】
- 終了時刻:202-06-03 ??:?? (JST) 【授業中にアナウンスします】
- コンテスト時間:70分
- 問題数:3
- コンテストの全問を解いた場合,残りの時間は自由にして良い.
- コンテスト中は,映像・音声による授業配信を行わない.
- 全体に対する連絡は Discord チャンネルまたは授業ページ(このあたり)を通じて行う.
- 全体の回答状況を見て,ヒントを出す場合がある.
- 解説は授業終了後に解説資料(PDF)を掲載する.
解説
本日のレポート課題
以下の二題について,解き方の方針,早く解くための実装法,その他の工夫等をまとめてレポートせよ.
- 本日の本番コンテスト内で自分が解いたもっとも難しい問題.
- ICPC や AtCoder Beginner Contest などの授業外の競技プログラミングコンテストの過去問(ICPC の過去問,AtCoder Beginner Contest の過去問)の好きな問題を解き,自分が解けた問題の中でもっとも難しい問題.
以下の注意点を守ること.
- 提出期限は 2021-06-24 12:59(授業後3週間).
- 期限厳守のこと(期限後のレポート提出,レポート差し替えは本当に無視します).
- 不完全でも可能な範囲で書いて期限内に提出すること.
- 提出は Google Classroom の「実践的・競技プログラミング(3)レポート」から行うこと.
- PDF で提出すること.
- ページサイズは A4,ページ数の上限は8ページとする(説明が十分ならページ数が少なくても問題ない).
- 「説明が十分」というのは単に自分自身が理解できるできるだけでなく,第三者を理解・納得させられる状態のこと.
- レポートの中身にはレポートタイトル,氏名,学籍番号,日付,ページ番号を含めること.
- レポートのファイル名はeメールアドレスの
@
より左側の文字列で始めること.例えば hb990000_report3.pdf
のようにすること.
- レポートにソースコードを含めなくても良い.ただし,説明に必要であればソースコードの部分または全体を載せても良い.
- 授業外の競技プログラミングコンテストの過去問については,解いた問題の出典(文献や URL)を記入すること.
- 授業外の競技プログラミングコンテストの過去問については,ウェブ上に掲載された回答・解説を見ても構わないが,レポートは自分で十分に理解してから自分の言葉で説明すること.剽窃(コピペ等)は厳禁.
- 必要に応じて図を使って説明するなどの工夫をすると良い.
- 誤字脱字に注意し,レポートの体裁にも気を配ること.
本番コンテスト(Contest 3-2)
ルール
- すべての問題で実行時間と記憶領域の制限が設定されている. 問題ごとの制限を確認するには,コンテスト開始後に競技参加者向けのトップ画面の
Problemset
をクリックせよ.
- 回答には C(C99),C++(C++11),Java が利用できる.
- コンテスト中にウェブ検索や書籍等を使って調べものをしても良い.
- ソースコードの雛型などの電子的準備をしても良い.
- ただし流用して良いのは自分が書いたコードのみであり,他者が書いたコードを複写してはならない.
- 他人に相談したり,他人にヒントを与えてはならない.
- 問題に関する疑義照会は Discord のダイレクトメッセージを廣田宛に送ること. 間違えて全体チャットを使って他者にヒントを与えないように注意.
- 本番コンテストの結果は成績評価の対象となる.
コンテストページ
- コンテストシステム(DomJudge)の使い方
- コンテストサイト
- 右上に「contest:」というプルダウンメニューから「Contest3-2」を選ぶ.
- 開始予定時刻:2021-06-03 ??:?? (JST) 【授業中にアナウンスします】
- 終了時刻:2021-06-03 ??:?? (JST) 【授業中にアナウンスします】
- コンテスト時間:110分
- 問題数:4
- コンテストの全問を解いた場合,残りの時間は自由にして良い.
- 忘れないうちにレポート作成に取り掛かることを推奨.
- レポート作成が時間内に完了したら,今度は作問してみよ.作問は問題を解くより難しい.良問をレポート付録として提出した場合には加点する(その場合は翌年度以降の問題として採用することがある).
- コンテスト中は,映像・音声による授業配信を行わない.
- 全体に対する連絡は Discord チャンネルまたは授業ページ(このあたり)を通じて行う.
- 全体の回答状況を見て,ヒントを出す場合がある.
- 解説はレポート期限後に解説資料(PDF)を掲載する.
解説
授業後の復習用コンテストシステム
- 授業終了後に復習用のコンテスト「Prac3-1」,「Prac3-2」が稼働する.コンテストの復習やレポート作成の手助けに用いられたい.