藍橋杯 方格取數

2021-09-11 04:24:13 字數 839 閱讀 9129

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

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

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

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

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

只能看題解寫了。四維雙線程dp

相當於兩個人同時走。

dp[i][j][k][l] 表示到達 (i,j)和 (k,l)的最大值

那麼他可以由4種情況轉移過來,所以寫出來狀態方程。另外要注意不能處於同一位置,如果處於同一位置,只加其中乙個。

1 #include2

using

namespace

std;

3int dp[20][20][20][20];4

int g[20][20];5

6int

main()

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

24}25}

26 printf("

%d\n

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

28return0;

29 }

posted @

2019-02-17 20:21

acmerszl 閱讀(

...)

編輯收藏

方格取數 藍橋杯

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

藍橋杯 方格取數 (多執行緒DP)

演算法訓練 方格取數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 設有n n的方格圖 n 10 我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。某人從圖的左上角的a 點 1,1 出發,可以向下行走,也可以向右走,直到到達右下角的b點 n,n 在走過的路上,他可以取走方格中...

藍橋杯 方格填數

方格填數 如下的10個格仔 如果顯示有問題,也可以參看 圖1.jpg 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。include include in...