#2535: Minimum Vertex Cover, NPC


ShingRay (ShingRay)

學校 : 华东师范大学第二附属中学
編號 : 4270
來源 : [66.175.218.25]
最後登入時間 :
2016-09-24 01:03:31
b199. D. 郵輪 -- 2008 NPSC 高中組初賽 | From: [218.83.159.24] | 發表日期 : 2009-10-24 18:20

Use a greedy algorithm to get an approximation solution. 
#2539: Re:Minimum Vertex Cover, NPC


asleepy (DingDong)

學校 : 臺北市立建國高級中學
編號 : 8700
來源 : [111.243.90.14]
最後登入時間 :
2015-02-09 22:29:21
b199. D. 郵輪 -- 2008 NPSC 高中組初賽 | From: [59.104.29.193] | 發表日期 : 2009-10-25 05:16

Use a greedy algorithm to get an approximation solution.

是的,這是一個 NP 的問題。意思也就是說,如果告訴你哪幾間房間是準備室的話,檢查這樣有無符合限制僅需要 P 的時間。(先檢查每條邊是否至少有一的頂點是準備室,檢查的時候順便將另外一個頂點標記,然後再檢查所有的頂點是不是都有標記或是自己就是準備室, n + m)


先看簡單一點的,如果整能有一間準備室。 那麼隨便挑一個邊,這個邊的兩邊至少有一個頂點得要是準備室。那先試試看把其中一個頂點當準備室,這樣合不合法,不行的話再把另外一個頂點當準備室看看合不合法。如果兩個放法都不行,這圖鐵定無解。

那麼如果可以擺放兩間準備室呢?隨便挑兩個沒有重疊到的邊 (v1, v2), (v3, v4) ,v1 ~ v4 都不相等,分別嘗試  [v1, v3], [v1, v4], [v2, v3], [v2, v4] 當準備室,如果這四種方法都不行,那這圖肯定無法解。

不管你取出哪兩條邊,只要這兩條邊的四個頂點都不相等,就可以得出這樣的推論。 

我想嘗試說明的是,如果你能找出 8 的地方讓你選擇,每個地方必須保證一定會有一個準備室,那麼當你在這 8 個地方爆搜完後發覺還是無解的時候,你就可以肯定這絕對無解。那麼可能會花 2^8 (n + m) = 256(n + m) 。

實際上做的時候到也不用這麼麻煩 :)

 

 

 

 
ZeroJudge Forum