1. 程式人生 > >淺談貪心算法1

淺談貪心算法1

得到 心算 算法 部分 問題 解釋 做出 三角形 結果

這套貪心算法的博客是分5個階段的,今天先和大家介紹一下貪心的本質

貪心算法,是OI中重要的一部分,也是考察一個選手在考場上的思維水平的量尺,這類問題可能很簡單,但也有可能很難

貪心算法是指求解問題時,每一步都使用當前看似最好的選擇,但是這並沒有從在整體上分析問題,只是做出了在某種意義上的局部最優解,有時這樣做會導致整體上的問題不是最優的,從而失掉大量分數

貪心並沒有固定的框架,而是考察選手的分析能力與思維水平,核心在於貪心決策的選擇,選擇的貪心策略首先要考慮無後效性,才能考慮和證明局部解和全局解的關聯

今天先淺談一下數字三角形問題

題目地址:https://www.luogu.org/problemnew/show/P1216

那麽思考一下,一味的貪心是怎麽樣的呢?可以拿樣例來試一試

每一步都取最大的嗎?

那麽按這種策略來寫,樣例的結果是7+8+1+7+5=28,但是,樣例解釋的那條路徑顯然更大

這時候,局部的最優解就不一定是全局的最優解了,所以這是就要另辟蹊徑,看一看是切換貪心決策還是使用其他算法

有時侯,題目的樣例會和你說你的貪心策略是錯的,比如這題,但是有時樣例過了,這時候千萬不要飄飄然,多生成幾個樣例,再多去思考,有時可以通過直覺或數學證明來得到貪心策略的對錯,也正是局部解與最優解的聯系

淺談貪心算法1