1. 程式人生 > >演算法第三章

演算法第三章

1、  對動態規劃演算法的理解:動態規劃就是將一個大問題變成一個個子問題再去解決,而每個子問題都是互相有聯絡的,不像二分法是獨立存在的。而這些子問題都可以通過遞迴或者多重迴圈來解決,最終得出最終答案。無論是矩陣連乘問題,揹包問題,還是我們實踐中的三道實驗題目,都是通過子問題來得出。我覺得三角形那個是最典型的,一層層解決,能夠讓人對動態規劃有更深的理解。動態規劃是很好的演算法,以後處理問題的時候可以先考慮這個演算法,實現起來也清晰簡單。

2、          列出遞迴方程:

①    dp[i] = max(dp[j]+1, dp[i]);

②    i==n, dp[i] = 0;
i<n, dp[i] = min{ r[i][k] + dp[k] }, i<k<=n;

3、  結對程式設計情況:做動態規劃作業時應該先獨立思考,然後互相討論。一開始寫動態規劃作業的時候,兩個人都有不同的想法,處理的角度可能有點偏差。後來經過討論確定想法其實是一致的,就都自己先把自己的程式碼打出來,再互相討論,最後互相修改,一起進步。平日寫作業結對程式設計效果不明顯,實驗課上比較不錯。