acm第四次貪心算法

貪心的題比stl感覺簡單多了,但是自己在做題時,還是缺乏貪心的思路,總是超時,唉,acmer之路長慢慢~
一:貪心算法
1、貪心算法是一種在每一步選擇中都採取在當前狀態下最好或最優的選擇,希望得到結果是最好或最優的算法。
2、貪心算法是一種能夠得到某種度量意義下的最優解的分級處理方法,通過一系列的選擇得到一個問題的解,而它所做的每一次選擇都是當前狀態下某種意義的最好選擇。即希望通過問題的局部最優解求出整個問題的最優解。
3、這種策略是一種很簡潔的方法,對許多問題它能產生整體最優解,但不能保證總是有效,因爲它不是對所有問題都能得到整體最優解。
4、利用貪心策略解題,需要解決兩個問題:
(1)該題是否適合於用貪心策略求解;
(2)如何選擇貪心標準,以得到問題的最優/較優解。
5、使用貪心算法求解問題步驟:
(1)候選集合A:爲了構造問題的解決方案,有一個候選集合A作爲問題的可能解,即問題的最終解均取自於候選集合A。
(2)解集合S:隨着貪心選擇的進行,解集合S不斷擴展,直到構成滿足問題的完整解。
(3)解決函數solution:檢查解集合S是否構成問題的完整解。
(4)選擇函數select:即貪心策略,這是貪心法的關鍵,它指出哪個候選對象最有希望構成問題的解,選擇函數通常和目標函數有關。
(5)可行函數feasible:檢查解集合中加入一個候選對象是否可行,即解集合擴展後是否滿足約束條件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章