尋寶路線(記憶劃搜尋方法)

2021-09-22 22:39:48 字數 993 閱讀 1854

在乙個m行n列方格矩陣中,每乙個方格內擺放著價值不等的寶貝(價值可正可負),讓小明感到好奇的是,從左上角到達右下角的所有可能路線中,能撿到寶貝的價值總和最大是多少?而且這種達到最大值的路線 又有多少條?【注意:只能從乙個格仔向下或向右走到相鄰格仔,並且走到的格仔寶貝一定會被撿起。】

輸入格式:

第一行為整數m,n(均不大於100),下一行開始會有乙個m行n列的整數方陣,對應方格矩陣中的寶貝價值(這些值的絕對值都不超過500)。

輸出格式:

單獨一行輸出2個整數,分別為能撿到寶貝價值總和的最大值和達到最大值的路線數量,2個整數間隔乙個空格。

輸入樣例:

4 52 -1 6 -2 9

-3 2 5 -5 1

5 8 3 -2 4

5 2 8 -4 7

#include #include #include using namespace std;

const int maxn = 101;

int a[maxn][maxn];

int dp[maxn][maxn];

int dpc[maxn][maxn];

int m, n;

int sum(int i, int j)

if(i==m-1&&j==n-1)

else if(i+1>m-1)

else if(j+1>n-1)

else

}int cnt(int i,int j)

else

else if(i+1>m-1)

else if(j+1>n-1)

else

else if(dp[i+1][j]>dp[i][j+1])

else}}

}int main()

}for (int i = 0; i < m; ++i)

}sum(0, 0);

cnt(0,0);

cout << dp[0][0]<<" "<}

地宮尋寶(記憶化所搜)

地宮尋寶 題目描述 x 國王有乙個地宮寶庫。是 n x m 個格仔的矩陣。每個格仔放一件寶貝。每個寶貝貼著價值標籤。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個格仔時,如果那個格仔中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它 當然,也可以...

尋寶路線 動態規劃

else if i m 1 到達底端,就只能往右走 else if j n 1 到達右端,只能往下走 else 否則在這一點能夠獲得的最大價值就是該點的寶物價值加上往右或者往下走能夠獲得的最大價值 int s int i,int j else int main printf d dp 0,0 put...

迷宮尋寶(一) 82 (廣搜)

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 乙個叫acm的尋寶者找到了乙個藏寶圖,它根據藏寶圖找到了乙個迷宮,這是乙個很特別的迷宮,迷宮裡有n個編過號的門 n 5 它們分別被編號為a,b,c,d,e.為了找到寶藏,acm必須開啟門,但是,開門之前必須在迷宮裡找到這個開啟這...