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
5sample output 思路:73 8
8 1 0
2 7 4 4
4 5 2 6 5
很經典的動態規劃題。
假設為n=3;
分別為
那麼 從i=3---->i=2;7 ---------i=1;
3 8 ----------i=2;
8 1 0 ------------i=3;
想要到達3,可選擇2條路 乙個從8上去, 乙個從1上去,那麼選擇二者之間最大的那個並且進行覆蓋。
同理想要到達8也一樣。
i=2變成
7 -------i=1;那麼從i=2------->i=1;11 9 -------i=2;
選擇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個裝置。...