1. 程式人生 > >差之毫厘, "異"之千裏 --- 從 UVa1292 與 [HNOI2003]消防局的設立 的異同談審題的重要性

差之毫厘, "異"之千裏 --- 從 UVa1292 與 [HNOI2003]消防局的設立 的異同談審題的重要性

分析 今天 設立 方法 edi alt img 自己 假設

今天做dp的時候, 看見一道似曾相識的題 --- [HNOI2003]消防局的設立

我的第一反應就是 UVa1292 Strategic game 這道題. 我以為, 這兩題的差距只在"控制的距離上".

於是乎, 苦想dp無果(雖然這題可以dp). 看題解發現原來是簡單的貪心.

解決了這道題以後, 我就回頭研究UVa1292了. 在網上找了一圈, 發現沒有用貪心做的.

技術分享圖片我豈不是發現了一種新的做法?

果斷碼碼碼, 結果

技術分享圖片 技術分享圖片

好吧, 我冷靜下來, 再認真的讀了一遍這個題,.

果然, 發現了這兩個題之間細小的差別 :

技術分享圖片

UVa1292的部分題幹

技術分享圖片

[HNOI2003]消防局的設立 的部分題幹

和@HailJedi討論了一下,

這兩個條件看起來等價, 實則不同. 從圖論角度來說, 前者可以看做非二分圖的 最小點覆蓋 問題, 而後者可以看做非二分圖的 最小邊覆蓋 問題的變形.

前者的解決方法一般采用dp, 而後者的解決方法一般是貪心. 後者的貪心策略用在前者上是錯誤的.

技術分享圖片

設紅色的為根節點, 那麽根據 HNOI 一題的貪心策略,我們會選擇藍色的點, 假設每一個點"管轄"的範圍是1, 那麽所有點都被覆蓋住了,但是兩條橙色的邊沒有被覆蓋,不滿足 UVA 一題的條件

我反思了一下我的做題過程, 因為"記得"做過類似的題, 所以並沒有仔細審題, 也沒有仔細分析這一題的性質. 這就是問題所在. 假如我"忘記"之前做過的題, 認真分析這一題的條件, 那麽貪心是不難想出來的.

所以, 考場上如果遇到自己見過的題, 一定不要高興的太早, 必須確認模型完全相同後才能套用之前的做法.

差之毫厘, "異"之千裏 --- 從 UVa1292 與 [HNOI2003]消防局的設立 的異同談審題的重要性