經典DP合集

2021-08-26 09:29:21 字數 1169 閱讀 7828

1.數字三角形/數塔問題(dp入門題)

有形如下圖所示的數塔,從頂部出發,在每一結點可以選擇向左走或是向右走,一起走到底層,要求找出一條路徑,使路徑上的值最大。

樣例輸入:

11 8

12 7 26

6 14 15 8

12 7 13 24 11

樣例輸出:

86(13->8->26->15->24)

狀態轉移方程:dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+a[i][j]; 從最低層往上搜尋

#include #include #include #include #include #include //#include #define ll long long

using namespace std;

#define pai acos(-1,0)

int map[355][355];

int dp[355][355];

int main()

} for(int i=1;i<=n;i++)

dp[n][i]=map[n][i];

for(int i=n-1;i>=1;i--)

cout<2. 序列dp

(1)最長上公升子串行lis

輸入n及乙個長度為n的數列,求出此序列的最長上公升子串行長度。上公升子串行指的是對於任意的i樣例輸入:

4 2 3 1 5

樣例輸出:

3(最長上公升子串行為2, 3, 5)

#include #include #define maxn 1005

using namespace std;

int n,a[maxn];

int dp[maxn]; //dp[i]記錄以a[i]為末尾的最長上公升子串行的長度

int main()

ret=1;

for(i=1;i<=n;i++)

}printf("%d\n",ret);

}return 0;

}

UML經典書籍合集

資源大小 11.91mb 上傳者 shenzhq1980 所需積分 0 uml基礎與rose建模教程.pdf 資源大小 19.99mb 上傳者 shenzhq1980 所需積分 0 uml with rational rose從入門到精通.pdf 資源大小 16.39mb 上傳者 shenzhq19...

經典排序演算法合集

前言 作為乙個畢業季的狗子,在已經到來的秋招面前可謂是瑟瑟發抖。在海投簡歷的過程中,一次又一次的筆試,一次又一次的涼涼早就見怪不怪了。但是排序演算法出現的頻率真的比較大,所有現在做乙個學習及總結,應對接下來的筆試和面試 v 首先來乙個總的介紹,基本排序演算法到底有哪些,不說了,直接上圖 總結一下 平...

osu合集(期望dp)

easy 我們設 f i 表示到 i 的連續個數平方的期望。g i 表示到到 i 的連續個數的期望 在維護 f i 的同時維護一下 g i 就行了。轉移方程 g i p i times g f i p i times f 2 times g 1 1 p i times f 解釋一下第二個方程,長度有...