立命合宿2016day3:e問題

9
E問題:Arai's 原案:鈴木 解説:鈴木

Upload: hcpc-

Post on 20-Jan-2017

123 views

Category:

Technology


0 download

TRANSCRIPT

E問題:Arai's

原案:鈴木解説:鈴木

問題概要

l  「荒井」さん A 人と「新井」さん B 人からなる女性アイドルグループで、新たなプロジェクトとして新規ユニットをいくつか作ることになった

l  ユニットは「荒井」さん1人と「新井」さん1人のペアで作る

-  同じ「あらい」さんが複数のユニットにいてはならない

l  ただし、各「あらい」さんは一部の「あらい」さんのことを良く思っていない(ユニットのペアになりたくない)

l  あなたは、ある「あらい」さんと面談をして他の「あらい」さんの良い噂を聞かせることにした

-  面談をした「あらい」さんは噂に聞いた「あらい」さんを見直す(ペアになってもいい)

l  K 回まで噂を聞かせることができるとき、作れるようになるユニットの最大数を求めよ

問題の制約

l  1 ≦ A, B ≦ 200 l  0 ≦ K ≦ 200

サンプル2. 入力の図示

矢印の先の人とはペアになりたくない

荒井1

荒井2

荒井3

新井1

新井2

新井3

サンプル2. 現状で作れるユニット

荒井1

荒井2

荒井3

新井1

新井2

新井3

1つしか無い・・・

サンプル2. K=2回まで噂を聞かせる

荒井1

荒井2

荒井3

新井1

新井2

新井3

新井1は良い奴荒井3は良い奴

悪い関係を解消!

サンプル2. 努力の結果

荒井1

荒井2

荒井3

新井1

新井2

新井3

3つのユニットができた!

問題の本質

l  ペアを作ろうとするとき、そのペアを作るために必要な噂の回数は容易にわかる

l  ペアを作るために必要な噂の回数をペアのコストと表現すると、少ないコストで、人がかぶらないように、たくさんのペアを選択したい

荒井1

荒井2

荒井3

新井1

新井2

新井3

1回:コスト1

0回:コスト0

2回:コスト2

想定解法:最小コスト二部マッチング

l  「荒井」さんと「新井」さんの二部グラフで最小費用流

-  F 流す最小コストが K 以下ならば、ユニットを最少で F 個作成可

l  コストが K を超えない最大の F が答え

-  蟻本の最小費用流アルゴリズムだと1流すごとにコストがわかる

l  コストが K を超えたら止めて、そのときの流量-1が答えペア間の辺:(ペアのコスト,容量1),それ以外の辺:(コスト0,容量1)

s t

O(F E logV) F = min(A, B) E = A * B V = A + B 1 ≦A, B ≦200