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

いろいろな問題の解説

 いろいろな問題の解説

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

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みたいにただ対応させるだけというも のもある