P1004 方格取數

2022-06-02 05:36:11 字數 605 閱讀 1280

題意:給出乙個n*n的矩陣,然後每乙個位置有一定權值;

要求從(1,1)走兩條路徑到(n,n)使最後結果最大(走的時候帶走格內權值)

思路:題目給出的資料範圍極度小,n<10;

所以我們可以開四維dp  dp【i】【j】【k】【l】

表示第乙個人處於(i,j)位置,第二人處於(k,l)位置時候的最大值;

那麼我們只需要從小到大遍歷一遍,即可;

而在遍歷的時候,倘若兩個人的座標一致,那麼格內權值只能取一次,所以需要減一次

1 #include2

using

namespace

std;

3const

int maxn=20;4

intg[maxn][maxn];

5int

dp[maxn][maxn][maxn][maxn];

6int

main()716

for(int i=1;i<=n;i++)25}

26}27}

28 printf("

%d\n

",dp[n][n][n][n]);

29return0;

30 }

P1004 方格取數

這題有兩種做法。第一種是同時考慮兩個點,也就是用4個迴圈。列舉每個點的位置,並計算總分。f i j k l max f i j k l f i 1 j k 1 l f i j 1 k l 1 f i 1 j k l 1 f i j 1 k 1 l a i j a k l 當 i k j l 時,多算...

P1004 方格取數

題目描述 設有n n的方格圖 n 9 我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。如下圖所示 見樣例 a0 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...

P1004 方格取數

題目描述 設有n n的方格圖 n 9 我們將其中的某些方格中填入正整數,而其他的方格中則放入數字00。如下圖所示 見樣例 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...