Weitere ähnliche Inhalte
Mehr von HCPC: 北海道大学競技プログラミングサークル (20)
RUPC 2018 Day3 F: 最短距離を伸ばすえびちゃん (Ebi-chan Lengthens Shortest Paths)
- 1. 立命合宿 2018 Day 3
F:最短距離を伸ばすえびちゃん
原案,問題文,解説:鈴木
解答:栗田,鈴木,杉江
2018/3/28 立命合宿2018 Day3 F 1
- 2. 問題概要
• 𝑁頂点𝑀辺の有向グラフと2頂点𝑠, 𝑡が与えられる
• 辺𝑖は距離𝑑𝑖
• いくつかの辺を整数の範囲で伸ばす
• 辺𝑖は距離1伸ばすごとに𝑐𝑖のコストがかかる
• 𝑠-𝑡間の最短距離を伸ばすために必要な最小コストは?
• 制約
• 2 ≤ 𝑁 ≤ 200
• 1 ≤ 𝑀 ≤ 2000
• 𝑠 ≠ 𝑡
• 1 ≤ 𝑑𝑖, 𝑐𝑖 ≤ 10
2018/3/28 立命合宿2018 Day3 F 2
- 3. 𝑠
𝑡
𝑑: 6, 𝑐: 1
𝑑: 2, 𝑐: 5
𝑑: 3, 𝑐: 1
𝑑: 2, 𝑐: 6
𝑑: 5, 𝑐: 3
𝑠
𝑡
𝑑: 7
𝑑: 2
𝑑: 3
𝑑: 2
𝑑: 5
𝑑𝑠𝑡 𝑠, 𝑡 = 7 𝑑𝑠𝑡 𝑠, 𝑡 = 7
𝑐𝑜𝑠𝑡 = 1入力
𝑠
𝑡
𝑑: 7
𝑑: 3
𝑑: 3
𝑑: 2
𝑑: 5
𝑑𝑠𝑡 𝑠, 𝑡 = 8
𝑐𝑜𝑠𝑡 = 5
𝑠
𝑡
𝑑: 7
𝑑: 2
𝑑: 4
𝑑: 2
𝑑: 6
𝑑𝑠𝑡 𝑠, 𝑡 = 8
𝑐𝑜𝑠𝑡 = 4答え
2018/3/28 立命合宿2018 Day3 F 3
- 8. 解法の詳細
1. 最短路DAGを作る
• ワーシャル・フロイド 𝑂 𝑁3
• 各辺が最短路に寄与するかチェック 𝑂(𝑀)
• 𝑑𝑠𝑡 𝑠, 𝑢𝑖 + 𝑑𝑖 + 𝑑𝑠𝑡 𝑣𝑖, 𝑡 = 𝑑𝑠𝑡(𝑠, 𝑡)なら寄与
2. 最短路DAGで最小カット問題を解く
• 例えば Dinic,フォード・フォルカーソン,…
• 全体の計算量
• Dinicを使う:𝑂 𝑁3 + 𝑁2 𝑀
• フォードを使う:𝑂(𝑁3 + 𝑀 × 𝐴𝑁𝑆)
2018/3/28 立命合宿2018 Day3 F 8
グラフが小さいので
これで十分です
- 10. 提出状況
• Acceptance Rate
• 72% (34 /47)
• First Accept
• オンサイト
• rupc_aiu (0:33)
• オンライン
• pekempey (0:49)
2018/3/28 立命合宿2018 Day3 F 10