!HDU 1176 DP (矩陣動規)

2021-07-02 21:40:57 字數 560 閱讀 7477

題意:有乙個數軸,從0到10,小明開始在5這個位置。現在天上開始掉餡餅,小明每次只能移動單位一的長度,求小明最多能接到多少餡餅。

分析:剛開始接觸動態規劃,還沒有真正理解動規的思維,所以剛開始的dp做法不知道對不對但是tle了。正確的方法是建立乙個以時間為行位置為列的矩陣,最初map[i][j]代表的是第i時刻j位置掉的餡餅的數量,狀態轉移方程:map[i][j]=map[i][j]+max(map[i+1][j-1],map[i+1][j],map[i+1][j+1])。也就是從最底層開始往上做。似乎dp都是從最接近結果的位置往前推,最終得到最優解。有待加深理解。

**:#include#includeusing namespace std;

int map[100008][12];

int n;

int main()

map[i][0]+=map[i+1][0]>map[i+1][1]?map[i+1][0]:map[i+1][1];

map[i][10]+=map[i+1][9]>map[i+1][10]?map[i+1][9]:map[i+1][10];

} cout<

HDU 1176 DP 免費餡餅

剛開始自己寫的時候有點思路,想著吧資料存入結構體,然後對時間排序,對應著去找狀態方程。可是自己怎麼找也找不到,看了的部落格,忽然有了啟發 然後自己寫,寫完後覺得挺對,wa了,之後各種改各種wa.回過頭來想她的思路,發現自己對某一時刻某一地點沒有餡餅的dp狀態沒有更新,那鐵定錯啦。然後改,還是錯。仔細...

矩陣連乘問題 區間動規

解答想法 共兩行第一行n 1 n 100 代表矩陣個數。第二行有n 1個數,分別為q 0 q 1 q n 1 q k 2000 代表第 k 個矩陣是q k 1 xq k 維的。共兩行第一行 m,為最優代價。注 測試用例中 m 值保證小於 2 31 第二行為最優順序。如 a1 a2a3 a4 最外層也...

hdu 1176 免費餡餅 dp

去年暑假的時候就看到這個題了,當時太菜了。完全不知道做。今天看到了網上的hdu dp46題,準備暑假前把這46個題搞了,正好看到了這個免費餡餅,怒a之。狀態轉移方程 dp i j max dp i j max dp i 1 j max dp i 1 j 1 dp i 1 j 1 v i j 其中dp...