2012年2月15日 星期三

PKU3020-Antenna Placement

題目:http://poj.org/problem?id=3020
最大40*10的棋盤上有一些「*」或是「o」
想用2*1的骨牌蓋住所有的*、求最少要幾張骨牌(可以重疊)


程式碼:http://codepad.org/Rswm24wE

原來!原來我不會寫最大二分匹配…

(卡了N久的一題)

首先把每個*想成一個個節點、*之間相鄰就是有邊相連
這時候發現,放骨牌就等同於是「選邊」
想要選最少的邊讓全部的點都蓋到,這就是充滿愉悅智慧的「最小邊覆蓋」問題
於是總點數-最大二分匹配數即答案

結論就是

我要去打Blaze rod來玩藥水了,大家88

沒有留言:

張貼留言