O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
C editorial
C editorial
Carregando em…3
×

Confira estes a seguir

1 de 11 Anúncio
Anúncio

Mais Conteúdo rRelacionado

Mais de HCPC: 北海道大学競技プログラミングサークル (20)

Mais recentes (20)

Anúncio

D editorial

  1. 1. ❧ D:Rescue a postal worker ~郵便局員を救え~ 原案:栗田 問題文:栗田 解答:井上・栗田・鈴木 2015/03 立命館大学競技プロブラミング合宿 1
  2. 2. ❧ ❧ 郵便局員が落とした郵便物の地点と,それ ぞれの郵便物の配達先が与えられる. ❧ 落とした郵便物を拾い,指定の配達先に 届ける. ❧ 配達にかかる時間を最短にする. 問題概要 2015/03 立命館大学競技プロブラミング合宿 2
  3. 3. ❧ ❧ 3進数のビットDPを用いた ダイクストラ法で求める. • 3進数の1つのビットでそれぞれの 郵便物が今どのような状態にあるのかを管 理する. • すべての郵便物が届けられた状態になる 最短の時間を求める. ❧ ダイクストラ法は蟻本参照 想定解法:ビットDP 2015/03 立命館大学競技プロブラミング合宿 3
  4. 4. ❧ 2015/03 立命館大学競技プロブラミング合宿 4 DPテーブル 1 2 3 4 5 6 (000000)3 0 ∞ ∞ ∞ ∞ ∞ (000001)3 ∞ ∞ ∞ ∞ ∞ ∞ (000002)3 ∞ ∞ ∞ ∞ ∞ ∞ … ∞ ∞ ∞ ∞ ∞ ∞ (2222222)3 ∞ ∞ ∞ ∞ ∞ ∞ DPテーブルの初期状態
  5. 5. ❧ ❧ テーブルの行がどの落し物がどの状態に なっているかを表す. ❧ 3進数表記した時の各桁は以下の状態を 表す • 0 → 拾っていない • 1 → 拾ったけど届けていない • 2 → 届けた 2015/03 立命館大学競技プロブラミング合宿 5 各ビットの意味
  6. 6. ❧ ❧ (000102)3 → 3つ目の落し物を拾っていて 1つ目の落し物を届けている状態. ❧ (000021)3 → 2つ目の落し物を届けていて 1つ目の落し物を拾っている状態 2015/03 立命館大学競技プロブラミング合宿 6 状態の例
  7. 7. ❧ ❧ 実際には2進数の2つのビットで • 00→拾っていない • 01→拾ったけど届けていない • 11→届けた としたほうがコーディングが楽かもしれない 2015/03 立命館大学競技プロブラミング合宿 7 DPテーブル
  8. 8. ❧ ❧ このテーブルをダクストラ法で更新してい き,初めて(222222)3 の行を更新した時の 値が配達にかかる最短の時間になる. 2015/03 立命館大学競技プロブラミング合宿 8 終了条件
  9. 9. ❧ ❧ グラフの頂点数をnとするとテーブルのサイ ズはΘ(n * 3k )なので,このテーブルをダイ クストラ法を用いて埋めるにはO(3k * m * log(3k * n))の計算量になる. 2015/03 立命館大学競技プロブラミング合宿 9 計算量
  10. 10. ❧ ❧ 井上(c++):87行 ❧ 栗田(c++):99行 ❧ 鈴木(c++):86行 2015/03 立命館大学競技プロブラミング合宿 10 Writer解
  11. 11. ❧ ・First Acceptance  ・on-site iidx (28 min)  ・on-line snuke (16 min) ・正答数 23/30 (76.7%) 2015/03 立命館大学競技プロブラミング合宿 11 提出状況

×