Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 最小カットを使って「燃やす埋める問題」を解く | PDF
2. 燃やす埋める問題
引用:Komakiさんのページ
http://topcoder.g.hatena.ne.jp/CKomaki/20121019/1350663591
3. FoxAndGo3
引用:TopCoder - SRM594 Div1 Medium
http://community.topcoder.com/stat?c=problem_statement&pm=12808&rd=15706
4. The Year of Code Jam
引用:Google Code Jam World Finals 2008 E (プログラミングコンテストチャレンジブック P357) https://code.google.com/codejam/contest/32011/dashboard#s=p4
5. Surrounding Game
引用:TopCoder - SRM558 Div1 Hard https://code.google.com/codejam/contest/32011/dashboard#s=p4
6. 1
引用: 立命館合宿2013 Day2 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2496
7. RabbitWorking
引用: TopCoder - SRM 542 Div1 Hard
http://community.topcoder.com/stat?c=problem_statement&pm=11054&rd=14734
3
21
燃やす
土に埋める
A
50円の利益
100円の利益
B
60円の利益
100円の利益
C
130円の利益
100円の利益
無条件で得られる利益
燃やす
土に埋める
A
100円の利益
50円の損失
0円の損失
B
100円の利益
40円の損失
0円の損失
C
130円の利益
0円の損失
30円の損失
利益が大きい選択肢の利益を、無条件で得られるこ とにする→その分選択肢からひくと全て損失に
22.
22
燃やす
土に埋める
A
50円の利益
100円の利益
B
60円の利益
100円の利益
C
130円の利益
100円の利益
これはダメ!
◦負辺があるときの最小カット問題はNP困難
燃やす
土に埋める
A
-50円の損失
-100円の損失
B
-60円の損失
-100円の損失
C
-130円の損失
-100円の損失
23.
s
A
B
t
C
50
40
0
0
0
30
燃やす
燃やす
燃やす
土に埋める
土に埋める
土に埋める
最小s-tカットは0+0+0=0
あらかじめ貰える利益は100+100+130=330
求める最大値は330-0=330
24.
s
A
B
t
C
50
40
0
0
0
30
燃やす
燃やす
燃やす
土に埋める
土に埋める
土に埋める
コスト0の辺もグラフに書きましょう!
◦最小カット問題のグラフでは、 辺が元からないのと、損失0の辺とでは、別物です。
◦最大フローを求めるときに、容量0になるのでいらない辺に なりますが、それでも書きましょう
◦複雑な問題だと、辺が元からないのか、辺があるけどコスト が0なのかで、混乱しやすくなる。
27
s
A
B
t
20
100
50
20
燃やす
燃やす
土に埋める
土に埋める
Aを燃やしたときにBを土に埋めると 罰金300円かかる
28.
28
s
A
B
t
20
100
50
20
燃やす
燃やす
土に埋める
土に埋める
Aを燃やしたときにBを土に埋めると 罰金300円かかる
Aを燃やしたときにBを土に埋めたら まだs-tカットが成立しないようにする
29.
29
s
A
B
t
20
100
50
20
燃やす
燃やす
土に埋める
土に埋める
Aを燃やしたときにBを土に埋めると 罰金300円かかる
Aを燃やしたときにBを土に埋めたら まだs-tカットが成立しないようにする
300
罰金
30.
30
s
A
B
t
20
100
50
20
燃やす
燃やす
土に埋める
土に埋める
こうすると、s-tカットするにはB→Aの辺をカッ トせざるをえない。つまり300円かかる。
もちろん、これは最小カットではない。
この制約条件の追加方法を理解できないと その後すべて理解できなくなるので注意!
300
罰金
31.
31
s
A
B
t
20
100
50
20
燃やす
燃やす
土に埋める
土に埋める
両方を土に埋めると最小カット70円になります。
300
罰金