矩陣取數問題,51nod1084,多路dp

2021-07-30 19:16:55 字數 620 閱讀 1647

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 #include #include #include #include #include #include #include using namespace std;

#define max(a,b,c,d) max(max(a,b),max(c,d))

const int maxn = 200 + 7;

int pic[maxn][maxn];

int dp[maxn << 1][maxn][maxn];

void solve(int n, int m, int pic[maxn])

int main()

} solve(n, m, pic);

cout << dp[m +n][n][n] << endl;

} return 0;

}

51nod1084 矩陣取數問題 V2

o n4 o n3 媽呀為什麼跑這麼慢woc include include include includeusing namespace std define rep i,s,t for int i s i t i define dwn i,s,t for int i s i t i define...

51Nod1084 矩陣取數問題 V2

題目看這裡 乙個經典的dp題,典型的錯誤思想就是做兩遍 我們考慮直接做,f i j x y 表示第一次取道i,j這個位置,第二次到了x,y這個位置 考慮這個i,j和x,y分別是從 轉移過來,就可以得到方程 f i j x y max f i 1 j x 1 y f i j 1 x 1 y f i 1...

51nod 1084 矩陣取數問題 V2

1084 矩陣取數問題 v2 基準時間限制 2 秒 空間限制 131072 kb 乙個m n矩陣中有不同的正整數,經過這個格仔,就能獲得相應價值的獎勵,先從左上走到右下,再從右下走到左上。第1遍時只能向下和向右走,第2遍時只能向上和向左走。兩次如果經過同乙個格仔,則該格仔的獎勵只計算一次,求能夠獲得...