1 of 19

Problem E: School Excursion

Tetsuya Shiota

2 of 19

問題概要

  • 修学旅行でg個のクラスがある場所から有る場所へ移動したい。
  • n個の駅があり、m個の電車の運行情報がある
  • 電車は必ずi番目の駅からi+1番目の駅に向かう(1<=i < m)
  • 複数のクラスが同時刻に同じ駅に到着することができない
  • 最終駅には最大何クラス到着できるか。
  • それを実現するときの最小コストはいくらか。

3 of 19

サンプル1

駅1

駅2

時間

10

20

10

10

0

4 of 19

サンプル1

駅1

駅2

時間

10

20

10

5

5 of 19

サンプル1

駅1

駅2

時間

10

20

10

15

6 of 19

サンプル1

時間

進行方向

駅1

駅2

7 of 19

サンプル1

時間

進行方向

駅1

駅2

capacity ∞

capacity 1

capacity 1

8 of 19

サンプル1

時間

進行方向

駅1

駅2

capacity ∞

capacity 1

capacity 1

到着する時間のみに注目

9 of 19

サンプル1

到着時間

進行方向

駅1

駅2

capacity ∞

capacity 1

capacity 1

10 of 19

サンプル2

時間

10

12

11

10

12

11

10

12

11

100

10

cost 0

11 of 19

サンプル2

時間

10

12

11

10

12

11

10

12

11

100

cost 9

12 of 19

サンプル2

時間

10

12

11

10

12

11

10

12

11

100

1

1

cost 11

13 of 19

サンプル2

時間

10

12

11

10

12

11

10

12

11

100

0

2

cost 111

14 of 19

サンプル2

到着時間

進行方向

12

11

駅1

駅2

駅3

15 of 19

解法

最小費用流

16 of 19

計算量

ノード数

2*n*m

エッジ数

n * m * m + n * m

最大流用

g

最小費用流 O(C*E * lg V)

よって、g * n * (m + m^2) * lg (2*n*m) *

10 * 100 * 420 * lg(4000) ≒ 500万(データセット20個)

17 of 19

結果

First Accept

hogloid 100min

18 of 19

関連問題

最小費用流 重みマッチング

AOJ 2293 Dangerous Tower

最大流最大マッチング

AOJ 2168 Luigi's Tavern

19 of 19

元ネタ

なし。

最小費用流の問題を本番で解きたくてしかたないのに、結局今まで本番で解けなくて悔しくて最小費用流に思いを馳せてたら思いついた。