解題關鍵:1、注意i和j的最大取值都是n,k是i與j的和。
2、空間卡的很緊,多一位都不行。
轉移方程:$dp = max\'][']['][']\} + a + a$
通過觀察,可以消去乙個變數,從而
$dp[k + 1] = max\'][']\} + a + a$
然後再將相同的處理掉即可
1 #include2using
namespace
std;
3 typedef long
long
ll;4
int a[402][402
];5 ll dp[402][201][201];6
intm,n;
7int
main()14}
15for(int k=2;k<=n+m;k++)23}
24}25 printf("
%lld\n
",dp[n+m][n][n]);
26return0;
27 }
dp 更難的矩陣取數問題
題目 乙個m n矩陣中有不同的正整數,經過這個格仔,就能獲得相應價值的獎勵,先從左上走到右下,再從右下走到左上。第1遍時只能向下和向右走,第2遍時只能向上和向左走。兩次如果經過同乙個格仔,則該格仔的獎勵只計算一次,求能夠獲得的最大價值。例如 3 3的方格。1 3 3 2 1 3 2 2 1 能夠獲得...
更難的矩陣取數問題
題目描述 乙個m n矩陣中有不同的正整數,經過這個格仔,就能獲得相應價值的獎勵,先從左上走到右下,再從右下走到左上。第1遍時只能向下和向右走,第2遍時只能向上和向左走。兩次如果經過同乙個格仔,則該格仔的獎勵只計算一次,求能夠獲得的最大價值。例如 3 3的方格。1 3 3 2 1 3 2 2 1 能夠...
矩陣取數問題,51nod1084,多路dp
51nod1084,兩路dp,兩次從 1,1 走到 n,m 拾取路上的珍珠。dp k i j 表示第k步時,乙個人在i列,乙個人在j列,i j k m n k 2 我一般都會將輸入和處理分開來,下面的solve 函式用於處理資料 include include include include inc...