DP 經典問題解析

2021-09-06 06:32:28 字數 816 閱讀 7590

解決dp(動態規劃)問題是需要思維訓練的,下面列舉了四個經典的dp問題和解析,希望對大家有幫助。

【題目比較長,在此略去了,可以從網上搜到具體描述。】

(一)最長單調遞增子串行問題(遞減同理)

(1)用乙個陣列b[n]記錄以a[i]結尾的最長單調遞增子串行的長度

(2)b[i] = max + 1, b[0] = 1

(3)序列a的最長單調子串行的長度為max

(二)最大子串行和問題

(1)用乙個陣列b[n]記錄以a[i]結尾的最大子串行和

(2)b[i] = max

(3)序列a的最大子串行和為max

(三)最大子矩陣和問題(上題的二維擴充套件)

(1)限定列的範圍(i~j)

(2)對列範圍內的每一行求和,從而化為一維序列

(3)化歸為問題(二)

(四)揹包問題

(1)用乙個二維陣列m,m[i][j]代表在承重j,裝入物品為從i到n時可以達到的最大價值

(2)m[i][j] = max(m[i+1][j], m[i+1][j-wi]+vi)

(3)m[1][j]即為最大價值

(五)滑雪問題

(1)用乙個結構體陣列locheight記錄每個點的座標和高度

用乙個二維陣列len記錄以每個點作為路徑起點的最長路徑長度

(2)將結構體陣列按照高度從低到高排序

注:排序的好處是,處理某個點的時候已經處理完比該點低的所有點的資訊,只需一次掃瞄

(3)對於某點a,四周比a點低的所有點中,選len值最大的點b,將a對應的len值設為b.len+1

(4)掃瞄len陣列,找出最大值

DP 經典問題解析

解決dp 動態規劃 問題是需要思維訓練的,下面列舉了四個經典的dp問題和解析,希望對大家有幫助。題目比較長,在此略去了,可以從網上搜到具體描述。一 最長單調遞增子串行問題 遞減同理 1 用乙個陣列b n 記錄以a i 結尾的最長單調遞增子串行的長度 2 b i max 1,b 0 1 3 序列a的最...

經典問題解析

1 經典問題解析。1 const 什麼時候是常量,什麼時候是變數。2 const 常量的判斷準則。1 只有字面量初始化的 const 常量才會進入符號表,真正意義上的常量。2 使用其他變數初始化的 const 常量依舊是唯讀變數。3 被 volatile 修飾的 const 常量不會被放入到符號表 ...

經典問題解析三

分析 這是乙個多型與陣列物件,及指標運算子之間的問題。1 父類中佔8個位元組,乙個int型別,乙個virtual函式,所以父類輸出8個位元組。2 子類繼承了父類,同時又多個乙個int型別,所以子類佔12個位元組。3 p為父類指標,c為子類指標,p 的步長為8,c 的步長為12。4 所以,當p 後,p...