o(n4)->o(n3)媽呀為什麼跑這麼慢woc
#include#include#include#includeusing namespace std;output#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 clr(x,c) memset(x,c,sizeof(x))
int read()
const int nmax=205;
int a[nmax][nmax],dp[nmax][nmax][nmax<<1],n,m;
bool check(int x,int y)
int aa[5]=;
int bb[5]=;
int cc[5]=;
int dd[5]=;
void maxs(int &a,int b){
if(a1084 矩陣取數問題 v2
基準時間限制:2 秒 空間限制:131072 kb 分值: 80 難度:5級演算法題
收藏關注乙個m*n矩陣中有不同的正整數,經過這個格仔,就能獲得相應價值的獎勵,先從左上走到右下,再從右下走到左上。第1遍時只能向下和向右走,第2遍時只能向上和向左走。兩次如果經過同乙個格仔,則該格仔的獎勵只計算一次,求能夠獲得的最大價值。
例如:3 * 3的方格。
1 3 3
2 1 3
2 2 1
能夠獲得的最大價值為:17。1 -> 3 -> 3 -> 3 -> 1 -> 2 -> 2 -> 2 -> 1。其中起點和終點的獎勵只計算1次。
input
第1行:2個數m n,中間用空格分隔,為矩陣的大小。(2 <= m, n <= 200)
第2 - n + 1行:每行m個數,中間用空格隔開,對應格仔中獎勵的價值。(1 <= a[i,j] <= 10000)
輸出能夠獲得的最大價值。input示例
3 3output示例1 3 3
2 1 3
2 2 1
17
矩陣取數問題,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...
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遍時只能向上和向左走。兩次如果經過同乙個格仔,則該格仔的獎勵只計算一次,求能夠獲得...