日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[蓝桥杯][算法提高VIP]夺宝奇兵-dp

發(fā)布時(shí)間:2023/12/4 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [蓝桥杯][算法提高VIP]夺宝奇兵-dp 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述
在一座山上,有很多很多珠寶,它們散落在山底通往山頂?shù)拿織l道路上,不同道路上的珠寶的數(shù)目也各不相同.下圖為一張藏寶地圖:

7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

”奪寶奇兵”從山下出發(fā),到達(dá)山頂,如何選路才能得到最多的珠寶呢?在上圖所示例子中,按照5-> 7-> 8-> 3-> 7的順序,將得到最大值30
輸入
第一行正整數(shù)N(100> =N> 1),表示山的高度
接下來有N行非負(fù)整數(shù),第i行有i個(gè)整數(shù)(1< =i< =N),表示山的第i層上從左到右每條路上的珠寶數(shù)目
輸出
一個(gè)整數(shù),表示從山底到山頂?shù)乃艿玫降闹閷毜淖畲髷?shù)目.
樣例輸入

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

樣例輸出

30

解題思路:
題意不清,實(shí)則是,上一條路能選他對(duì)應(yīng)下一條和他下一條的右邊那一條。

代碼如下:

#include <iostream> using namespace std; const int N = 110; int mp[N][N]; int dp[N][N]; int n;int main() {cin >> n;for (int i = 1; i <= n; i++)for (int j = 1; j <= i; j++)cin >> mp[i][j];for (int i = 1; i <= n; i++) {dp[n][i] = mp[n][i];//初始化}for (int i = n - 1; i >= 1; i--)for (int j = 1; j <= i; j++) {dp[i][j] = max(dp[i + 1][j], dp[i + 1][j + 1]) + mp[i][j];}cout << dp[1][1] << endl;return 0;}

記憶化搜索解法:

  • [藍(lán)橋杯][算法提高VIP]奪寶奇兵-遞推+記憶化搜索
  • dp時(shí)間為2,比記憶化搜索慢.

    總結(jié)

    以上是生活随笔為你收集整理的[蓝桥杯][算法提高VIP]夺宝奇兵-dp的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。