演算法第四章作業

2022-07-11 22:06:18 字數 1059 閱讀 8863

貪心演算法將問題分解為多個子問題,然後分別對每乙個子問題求最優解,最後將所有子問題的解相加得到原問題的解,在某些時候貪心演算法可得原問題的乙個最優解,某些時候可得較好的解。

刪數問題 

給定n位正整數a,去掉其中任意k≤n 個數字後,剩下的數字按原次序排列組成乙個新 的正整數。對於給定的n位正整數a和正整數 k,設計乙個演算法找出剩下數字組成的新數最 小的刪數方案。

第 1 行是1 個正整數 a。第 2 行是正整數k。

輸出最小數。

在這裡給出一組輸入。例如:

178543 

4

在這裡給出相應的輸出。例如:

13

1 #include2

using

namespace

std;

3#define ll long long45

strings;6

int a[10005];7

intk;89

intmain() 25}

26 len--;27}

2829 i = 0;30

while (i<=len-1 && a[i]==0) i++; //

快進到開頭不是0

3132

if (i ==len)

33 cout <<0

<34else

35for(j=i; j<=len-1; j++)

36 cout <3738

return0;

39 }

演算法:若前一位大於後一位,則將此前一位刪去,將後一位及後面所有數向前挪一位。

同時,要謹慎的排除開頭為零的情況。

遇到的問題:選擇的貪心演算法不正確/想不到適合的貪心策略

結對程式設計情況:獨立程式設計,互相查缺補漏,提出測試點,對同一方法給出細節上不同的實現方法,拓寬了思路

演算法第四章作業

1.我對貪心演算法的理解 貪心演算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀態...

演算法第四章作業

一 對貪心演算法的理解 貪心演算法的基本要素是 貪心選擇性質和最優子結構性質 貪心選擇每次選取當前最優解,可以依賴以往的選擇,但絕不依賴於將來所做的選擇,也不依賴於子問題的解。貪心演算法通常以自頂向下的方式進行。二 汽車加油問題的貪心選擇性質 汽車應選擇在能到達的前提下離自己最遠的加油站進行加油 i...

演算法第四章作業

我的理解 主要是在貪心二字上面,但是重要的是在哪些方面上貪心,是解決題目的最重要的思路。因此要考慮貪心選擇性質和子結構性質 貪心選擇性質 從區域性的最優解擴充套件到整體的最優解 最優子結構性質 整體的最優解包含子問題的最優解 由於要計算汽車從起點到終點的最少加油次數 故,每次可以盡可能多的在滿油量內...