NOIP2000 方格取數 解題報告

2021-07-23 16:42:39 字數 1132 閱讀 9282

★★ 輸入檔案:fgqs.in 輸出檔案:fgqs.out 簡單對比

時間限制:1 s 記憶體限制:128 mb

設有n*n的方格圖(n<=10,我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。如下圖所示(見樣例):

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

某人從圖的左上角的a 點出發,可以向下行走,也可以向右走,直到到達右下角的b點。在走過的路上,他可以取走方格中的數(取走後的方格中將變為數字0)。

此人從a點到b 點共走兩次,試找出2條這樣的路徑,使得取得的數之和為最大。

輸入的第一行為乙個整數n(表示n*n的方格圖),接下來的每行有三個整數,前兩個表示位置,第三個數為該位置上所放的數。一行單獨的0表示輸入結束。

只需輸出乙個整數,表示2條路徑上取得的最大的和。

8 2 3 13

2 6 6

3 5 7

4 4 14

5 2 21

5 6 4

6 3 15

7 2 14

0 0 0

67 dp,與[noip2008]傳紙條類似

#include

#include

#include

using

namespace

std;

int a[55][55],d[55][55];

bool vis[55][55];

int x,y,num,n,out=0;

void dp()

else

out=max(buf+d[n][n],out);

}void baoli(int i,int j)

vis[i][j]=0;

}int main()

NOIp2000 方格取數

設有n n的方格圖 n 10,我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。如下圖所示 見樣例 某人從圖的左上角的a 點出發,可以向下行走,也可以向右走,直到到達右下角的b點。在走過的路上,他可以取走方格中的數 取走後的方格中將變為數字0 此人從a點到b 點共走兩次,試找出2條這樣的...

NOIP2000 方格取數

時間限制 1 sec 記憶體限制 64 mb 設有n n的方格圖,我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。如下圖所示 見樣例 在走過的路上,他可以取走方格中的數 取走後的方格中將變為數字0 此人從a點到b 點共走兩次,試找出2條這樣的路徑,使得取得的數之和為最大。第1行 1個整...

NOIP2000方格取數 DP

設有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 ...