code[vs] 1043 方格取數
設有n * n的方格圖(n<=10,我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。某人從圖的左上角的a 點出發,可以向下行走,也可以向右走,直到到達右下角的b點。在走過的路上,他可以取走方格中的數.此人從a點到b 點共走兩次,試找出2條這樣的路徑,使得取得的數之和為最大。跟傳紙條是乙個題,不過有了新的體會.
dp[x1][y1][x2][y2] = max:{dp[x1-1][y1][x2-1][y2],dp[x1-1][y1][x2][y2-1],dp[x1][y1-1][x2][y2-1],dp[x1][y1-1][x2][y2-1]} + a[x1][y1];
if(x1!=x2 && y1 != y2) dp[x1][y1][x2][y2] += a[x2][y2];
//這下清晰了吧....
#include
#include
#include
#include
#include
#define ll long long
using
namespace
std;
const
int n = 58;
int dp[n][n][n][n];
int a[n][n];
int main()
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
for(int k = 1; k <= n; k++)
for(int h = 1; h <= n; h++)
printf("%d\n", dp[n][n][n][n]);
return
0;}
codevs 1043 方格取數
設有n n的方格圖 n 10,我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。如下圖所示 見樣例 某人從圖的左上角的a 點出發,可以向下行走,也可以向右走,直到到達右下角的b點。在走過的路上,他可以取走方格中的數 取走後的方格中將變為數字0 此人從a點到b 點共走兩次,試找出2條這樣的...
Codevs1043 方格取數
設有n n的方格圖 n 10,我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。如下圖所示 見樣例 某人從圖的左上角的a 點出發,可以向下行走,也可以向右走,直到到達右下角的b點。在走過的路上,他可以取走方格中的數 取走後的方格中將變為數字0 此人從a點到b 點共走兩次,試找出2條這樣的...
codevs T1043 方格取數
時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 題解檢視執行結果 設有n n的方格圖 n 10,我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。如下圖所示 見樣例 某人從圖的左上角的a 點出發,可以向下行走,也可以向右走,直到到達右下角的b點。在走過的路...