p1004 方格取數設有n*n的方格圖(n<=9),我們將其中的某些方格中填入正整數,而其他的方格中則放
人數字0。如下圖所示(見樣例):
a
0 0 0 0 0 0 0 0
0 0 13 0 0 6 0 0
0 0 0 0 7 0 0 0
0 0 0 14 0 0 0 0
0 21 0 0 0 4 0 0
0 0 15 0 0 0 0 0
0 14 0 0 0 0 0 0
0 0 0 0 0 0 0 0
. b
某人從圖的左上角的a點出發,可以向下行走,也可以向右走,直到到達右下角的b
點。在走過的路上,他可以取走方格中的數(取走後的方格中將變為數字0)。
此人從a點到b點共走兩次,試找出2條這樣的路徑,使得取得的數之和為最大。
輸入格式:
輸入的第一行為乙個整數n(表示n*n的方格圖),接下來的每行有三個整數,前兩個
表示位置,第三個數為該位置上所放的數。一行單獨的0表示輸入結束。
輸出格式:
只需輸出乙個整數,表示2條路徑上取得的最大的和。
簡單的dp,類似於傳紙條。
難點就在於他要求兩條路徑的最大和。
於是不能完全仿照數字三角形,應該改成四維陣列
#include#includeusing
namespace
std;
int n,map[10][10],dp[10][10][10][10
];int
main()
for(int i=1;i<=n;i++)}}
}cout
<}
洛谷P1004方格取數( )
題目描述 設有n times nn n的方格圖 n le 9 n 9 我們將其中的某些方格中填入正整數,而其他的方格中則放入數字00。如下圖所示 見樣例 a 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 ...
洛谷 P1004 方格取數
洛谷 p1004 方格取數 設有n n的方格圖 n 9 我們將其中的某些方格中填入正整數,而其他的方格中則放 人數字0。如下圖所示 見樣例 a 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 4...
洛谷P1004 方格取數
一道顯而易見的dp題,因為要走兩次,相當於兩個人一起從起點出發,所以可採取四維陣列儲存,前兩維記錄第乙個人,後兩維記錄第二個人。轉移方程 dp i j k m max dp i 1 j k 1 m max dp i 1 j k m 1 max dp i j 1 k 1 m dp i j 1 k m ...