九度OJ 1529 棋盤尋寶

2021-06-21 17:13:19 字數 1115 閱讀 2874

題目描述:現在有乙個8*8的棋盤,上面放著64個價值不等的禮物,每個小的棋盤上面放置乙個禮物(禮物的價值大於0小於1000),乙個人的初始位置在棋盤的左上角,每次他只能向下或向右移動一步,並拿走對應棋盤上的禮物,結束位置在棋盤的右下角,請設計乙個演算法使其能夠獲得最大價值的禮物。

輸入:輸入包含多個測試用例,每個測試用例共有8行8列,第i行的第j列的數字代表了該處棋盤上的禮物的價值,每兩個數之間用空格隔開。

輸出:對於每組測試用例,請輸出你能夠獲得最大價值的禮物。

樣例輸入:

2 8 15 1 10 5 19 19

3 5 6 6 2 8 2 12

16 3 8 17 12 5 3 14

13 3 2 17 19 16 8 7

12 19 10 13 8 20 16 15

4 12 3 14 14 5 2 12

14 9 8 5 3 18 18 20

4 2 10 19 17 16 11 3

樣例輸出:

194

解題思路:這個一道比較簡單的dp問題,因為題目規定了移動的方向只能是向下或者向右。假設dp[i][j]表示到達i,j處可以獲得的最大的價值,則dp[i][j] = max + arr[i][j]。

ac**:

#include #include int arr[8][8];

int dp[8][8];

int mymax(int a,int b)

int main()

for(int i = 1; i < 8; i++)

} memset(dp,0,sizeof(dp));

dp[0][0] = arr[0][0];

for(int i = 1; i < 8; i++)

for(int i = 1; i < 8; i++)

for(int i = 1; i < 8; i++)

} printf("%d\n",dp[7][7]);

} return 0;

}

Jobdu 題目1529 棋盤尋寶

題目描述 現在有乙個8 8的棋盤,上面放著64個價值不等的禮物,每個小的棋盤上面放置乙個禮物 禮物的價值大於0小於1000 乙個人的初始位置在棋盤的左上角,每次他只能向下或向右移動一步,並拿走對應棋盤上的禮物,結束位置在棋盤的右下角,請設計乙個演算法使其能夠獲得最大價值的禮物。輸入 輸入包含多個測試...

九度OJ 1091棋盤遊戲

有乙個6 6的棋盤,每個棋盤上都有乙個數值,現在又乙個起始位置和終止位置,請找出乙個從起始位置到終止位置代價最小的路徑 1 只能沿上下左右四個方向移動 2 總代價是沒走一步的代價之和 3 每步 從a,b到c,d 的代價是c,d上的值與其在a,b上的狀態的乘積 4 初始狀態為1 每走一步,狀態按如下公...

九度 1532 棋盤尋寶擴充套件 揹包方案統計

題目描述 現在有乙個8 8的棋盤,上面放著64個不同價值的禮物,每個小的棋盤上面放置乙個禮物 禮物的價值大於0小於100 乙個人初始位置在棋盤的左上角,每次他只能向下或向右移動一步,並拿走對應棋盤上的禮物,結束位置在棋盤的右下角。從棋盤的左上角移動到右下角的時候的,每次他只能向下或向右移動一步,並拿...