Upgrade to Pro — share decks privately, control downloads, hide ads and more …

いろいろな問題の解説

 いろいろな問題の解説

IOI2013 直前合宿にて, HotterColder, SaveIt, Parrots, Maze, Disparityの解説

Avatar for Masaki Hara

Masaki Hara

July 05, 2013
Tweet

More Decks by Masaki Hara

Other Decks in Programming

Transcript

  1. 目次 • Hotter Colder (IOI 2010) • SaveIt (IOI 2010)

    • Parrots (IOI 2011) • Maze (IOI 2010) • Disparity (JOI Open 2013)
  2. Hotter Colder • 問題 – Nが与えられたとき、質問回数を最小化しなさい – N <= 100

    • 解答 – DP – dp[直前の質問,絞り込んだ範囲] =そこからの質問回数
  3. Hotter Colder • = 3 ⋅ 2 − 1 の場合の戦略

    23 − 1個 23 − 1個 23 − 1個
  4. Hotter Colder • = 3 ⋅ 2 − 1 の場合の戦略

    23 − 1個 23 − 1個 23 − 1個 • 1回目の質問
  5. Hotter Colder • = 3 ⋅ 2 − 1 の場合の戦略

    23 − 1個 23 − 1個 23 − 1個 • • 1回目の質問 2回目の質問
  6. Hotter Colder • = 3 ⋅ 2 − 1 の場合の戦略

    23 − 1個 23 − 1個 23 − 1個 • • 1回目の質問 2回目の質問
  7. Hotter Colder • = 3 ⋅ 2 − 1 の場合の戦略

    23 − 1個 23 − 1個 23 − 1個 • • • 1回目の質問 2回目の質問 3回目の質問
  8. Hotter Colder • = 3 ⋅ 2 − 1 の場合の戦略

    23 − 1個 23 − 1個 23 − 1個 • • • 1回目の質問 2回目の質問 3回目の質問 両方右側に進んだ場合: 右端で2分探索 (毎回のクエリを必ず実行できる)
  9. Hotter Colder • = 3 ⋅ 2 − 1 の場合の戦略

    23 − 1個 23 − 1個 23 − 1個 • • • 1回目の質問 2回目の質問 3回目の質問 右左の順に進んだ場合: 中央で2分探索 (毎回のクエリを必ず実行できる)
  10. Hotter Colder • = 3 ⋅ 2 − 1 の場合の戦略

    23 − 1個 23 − 1個 23 − 1個 • • 1回目の質問 2回目の質問 最初に左に進んだ場合: 左端で2分探索 (2回目の結果は使わない)
  11. SaveIt • 全域木の情報 – ノード数1000 × ノード番号10bit = 10000bit •

    ハブからの距離 – ハブ数36 × ノード数1000 × 差分2bit = 72000bit
  12. SaveIt • 全域木の情報 – ノード数1000 × ノード番号10bit = 10000bit •

    ハブからの距離 – ハブ数35 × ノード数1000 × 差分2bit = 70000bit • 全域木を、ハブ0からのBFSで構築すると、情 報を節約できる • (75点)
  13. SaveIt • 全域木の情報 – ノード数1000 × ノード番号10bit = 10000bit •

    ハブからの距離 – ハブ数36 × ノード数1000 × 差分5/3bit = 60000bit • 差分は3通りなので3つまとめて5bitで送れる • (100点)
  14. Parrots • 単に番号をつければいい 状況 番号 オウム0羽 0 オウム1羽(0) 1 :

    : オウム1羽(255) 256 オウム2羽(0,0) 257 オウム2羽(0,1) 258 : :
  15. Parrots • 証明 – = 0のとき、空の列はちょうど1通り。 – = 0のとき、0からなる列はちょうど1通り。 –

    数列の末尾が − 1に等しい場合の列は帰納法 の仮定より + − 1 − 1 通り 一方、それ以外の場合の列は帰納法の仮定より + − 1 通り なので帰納法より正しい
  16. Parrots / SaveIt • Parrots / SaveIt 教訓: – SaveItみたいに発想力が試されるものもある

    – でもParrotsみたいにただ対応させるだけというも のもある