簡單的經典動態規劃(DP 奪寶奇兵)

2021-10-11 16:11:38 字數 1368 閱讀 8750

description

在一座山上,有很多很多珠寶,它們散落在山底通往山頂的每條道路上,不同道路上的珠寶的數目也各不相同.下圖為一張藏寶地圖:

73 8

8 1 0

2 7 4 4

4 5 2 6 5

」奪寶奇兵」從山下出發,到達山頂,如何選路才能得到最多的珠寶呢?在上圖所示例子中,按照5-> 7-> 8-> 3-> 7的順序,將得到最大值30。

input

第一行正整數n(100> =n> 1),表示山的高度

接下來有n行非負整數,第i行有i個整數(1< =i< =n),表示山的第i層上從左到右每條路上的珠寶數目

output

乙個整數,表示從山底到山頂的所能得到的珠寶的最大數目.

sample input

5

73 8

8 1 0

2 7 4 4

4 5 2 6 5

sample output

思路:

很經典的動態規劃題。

假設為n=3;

分別為

7             ---------i=1;

3 8 ----------i=2;

8 1 0 ------------i=3;

那麼 從i=3---->i=2;

想要到達3,可選擇2條路 乙個從8上去, 乙個從1上去,那麼選擇二者之間最大的那個並且進行覆蓋。

同理想要到達8也一樣。

i=2變成

7 -------i=1;

11 9 -------i=2;

那麼從i=2------->i=1;

選擇11

最終i=1 的那條路為 18;

至此結束;

即需要兩個陣列,

乙個data存數字山,另乙個updata進行覆蓋;

並且覆蓋為:updata[i]=max(updata[i],updata[i+1])+data[i][j]

上**:

#include

using

namespace std;

intmain

(void

) cout<

return0;

}

藍橋杯 演算法提高VIP 奪寶奇兵(動態規劃)

題目描述 在一座山上,有很多很多珠寶,它們散落在山底通往山頂的每條道路上,不同道路上的珠寶的數目也各不相同.下圖為一張藏寶地圖 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 奪寶奇兵 從山下出發,到達山頂,如何選路才能得到最多的珠寶呢?在上圖所示例子中,按照5 7 8 3 7的順序,將...

藍橋杯 演算法提高VIP 奪寶奇兵 dp

題目描述 在一座山上,有很多很多珠寶,它們散落在山底通往山頂的每條道路上,不同道路上的珠寶的數目也各不相同.下圖為一張藏寶地圖 73 8 8 1 0 2 7 4 4 4 5 2 6 5 奪寶奇兵 從山下出發,到達山頂,如何選路才能得到最多的珠寶呢?在上圖所示例子中,按照5 7 8 3 7的順序,將得...

經典的動態規劃

有乙個動態規劃100例.看到機房裡shenben的複習資料.加上垃圾的dp.整理一下。一 資源分配問題 題目大意 有m個裝置,n個公司,v i j 表示第i個公司分j個裝置的貢獻值。怎樣分配使貢獻值的和最大?狀態 前i個公司分j個裝置。f i j 表示前i個公司分j個裝置,列舉第i個公司分k個裝置。...