1. 程式人生 > >貪心演算法題集總結

貪心演算法題集總結

這裡我主要總結一下自己最近做貪心題目的情況:

       從上個月7號開始吧,我就開始刷貪心的題了,其中不乏有些難度很高的題(對於我這菜鳥而言),百思不得其解後看了解題報告,但是也讓我學到了很多,肚子裡總要先有點墨水..還是迴歸正題,說說那些讓我印象深刻的題吧。

       在我看來,貪心最重要的是選擇一個最優的策略,然後迴圈遍歷,按照最優策略判斷,成功的取,不成功的捨去,求得每個子問題的最優就可以構成最優的結果.(在很多情況下貪心都需要用到排序,如果嫌麻煩可以呼叫標頭檔案algorithm中的sort,qsort函式排序)

①最典型的例子就是 會場安排問題nyoj14, 按節目結束時間排序,再遍歷每一個節目時,有選擇地更新結束時間,計算出最大節目數

    可分割揹包問題,按單位價值排序,每次選擇單位價值大的物品。有道題跟可分割揹包類似,但是需要考慮多一點點路程成本的問題,nyoj248

    有幾道也是比較容易找出最優策略的題目:  nyoj824 nyoj236   nyoj71  nyoj91(需要有點小技巧) 

②區間覆蓋問題,  poj1328(典型),nyoj6   nyoj1036(比較難理解的是題意...看不懂算了)  nyoj891  建議可以先做poj1328,後面的兩道也就可以想出來了。

③二分+貪心: 通過題目可以已知結果所在的範圍,然後又有某個限定條件的存在,這個條件可供我們作為貪心的檢驗條件 nyoj586 nyoj914  poj3122 poj3258 hdu4190

④尋找最大數系列(要在某個範圍內貪心):  nyoj448  nyoj1057 nyoj1170

⑤需要很細心地貪心策略  nyoj364(我有試著用二分圖但是超時了,選擇貪心策略去做吧)  nyoj791(記得要充分利用所有的油漆) hdu1735

⑥很難但是很有學習價值的題目: nyoj30(列舉出每種情況,解題報告一句話讓我恍然大悟,貪心策略很巧妙)  nyoj1309(看了解題報告很久才懂的題目,好題) hdu4415(難) hdu3697(貪心+列舉)

⑦策略好找,但是需要小技巧防止超時的題目: hdu4544  hdu4864

⑧以小見大,舉例子去找到排序策略,體會一下這三道題,nyoj47

(經典過河)hdu4296  hdu4442 nyoj1218(涉及高精度運算)

⑨如何將a配湊成b,用 '就近原則' nyoj915 hdu5821 

這裡只是列舉了一些題目,如果你是剛學貪心演算法正在找題目做的同學可以先刷完這些題,我的部落格也有部分題目的題解,希望有所幫助.

PS:因為huffman樹,迪傑斯特拉演算法,最小生成樹演算法,二分圖最大匹配(匈牙利演算法)和二分圖最佳匹配(KM演算法)  也用到了貪心思想,所以我也看了一下,下面都是一些很好的文章:

--------------------- 本文來自 勤勤勤能補拙 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/zark721/article/details/77040023?utm_source=copy