我之前雖然在上課時進行了已經算很多的練習,從簡到難。但是實際上理論方面,我完全沒有聽懂,不知道什麼時候用,怎麼用,反正經常聽見大佬們說貪心就好了,但是還是迷迷糊糊的,所以在這裡進行一些小小的學習記錄。
我們都知道在求解乙個問題的可行解或者最優解(即是最優化)的題目時,我們往往可以運用貪心演算法對此類問題進行求解。
我們其實從定義中就可以看出,貪心演算法因為思想過分簡單,而導致無法解決所有問題的缺點。所以在運用貪心演算法時,需要驗證是否都是全域性最優解。
1、建立數學模型來描述問題。
2、把求解的問題分成若干個子問題。
3、對每一子問題求解,得到子問題的區域性最優解。
4、把子問題的解區域性最優解合成原來解問題的乙個解。
(以上**於wikipedia——貪心演算法)
雖然這些演算法因為廣泛運用以至於很多人知道,但其本質思想就是貪心。
因為本人最近致力於複習樹,所以只擷取了樹相關部分。
反正就是保持我需要啥,我就使勁貪就對了。但是需要注意判斷是否為全域性最優解。
然後就沒了。之前到底為什麼沒懂!!
題目我沒有進行題解分析,大體都是把握住貪心方向,檢查是否可以是全域性最優解。就算不能拿滿(畢竟大部分時候不是正解),還是可以貪局部分。打暴力的好助手。
學習筆記17 貪心演算法
給定n個閉區間,請你在數軸上選擇盡量少的點,使得每個區間內至少包含乙個選出的點,輸出選擇點的最少數量。1 將每個區間按照右端點從小到大排序 2 從前往後依次列舉每個區間,如果當前區間已經包含點,則直接pass,否則選擇當前區間的右端點。include include using namespace ...
貪心演算法學習筆記
貪心演算法是指在對問題求解時,總是做出在當前看來是最好的選擇。不從整體最優上加以考慮,只做出在某種意義上的區域性最優解。選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀態,只與當前狀態有關。最優解問題大部分都可以拆分成乙個個的子問題,把解空間的遍歷視作對子問題樹的遍歷,則以某種形...
演算法學習筆記 貪心演算法
貪心也就是貪婪,就好比我們考試期末成績是由平時分和期末成績兩部分組成,我們複習時肯定是想要在考完當前這門之後的最短的時間內得到最多的分數。這就是貪心的思想。所謂貪心演算法 就是指 我們所做出的選擇在當前情況下總是最好的,它考慮的不是全域性最優解,而是 某種意義上的區域性最優解。核心思想 就是以區域性...