雙線dp(傳紙條)

2021-09-29 09:08:33 字數 1197 閱讀 1060

題意:

給乙個矩陣從(1,1)--->(n,m)然後再從(n,m)--->

(1,1),並且兩條路線不能有任何乙個位置重疊,求最大和

輸入:第一行輸入乙個正整數t,代表t組輸入

接下來輸入兩個正整數(0題解:

一道典型的雙線dp,可以開乙個四維陣列dp[ ] [ ] [ ] [ ]記錄兩個人的狀態每個人都有兩種狀態組合起來有四種,把四種狀態寫出來:

dp[x_1-1]

[y_1]

[x_2-1]

[y_2]

dp[x_1-1]

[y_1]

[x_2]

[y_2-1]

dp[x_1]

[y_1-1]

[x_2-1]

[y_2]

dp[x_1]

[y_1-1]

[x_2]

[y_2-1]

當前最優dp[

][]=

max(dp_狀態1

,dp_狀態2

,dp_狀態3

,dp_狀態4)+兩種當前數值

注意:

一開始陣列開的比較大,開了88,清空dp陣列的時候tle

所以陣列開小一點,既不會tle了

ac**:

#include

using namespace std;

//雙線dp

#define maxn 55

int dp[maxn]

[maxn]

[maxn]

[maxn]

;//思維陣列

int w[maxn]

[maxn]

;int n,m;

void print()

}}}for

(int x_1=

1; x_1<=n; x_1++)

}}} printf(

"%d\n"

,dp[n]

[m-1

][n-1]

[m]);}

int main()}

print()

;}}

TYVJ 1011 傳紙條 雙線程DP

p1011傳紙條 noip2008複賽提高組第三題 小淵和小軒是好朋友也是同班同學,他們在一起總有談不完的話題。一次素質拓展活動中,班上同學安排做成乙個m行n列的矩陣,而小淵和小軒被安排在矩陣對角線的兩端,因此,他們就無法直接交談了。幸運的是,他們可以通過傳紙條來進行交流。紙條要經由許多同學傳到對方...

線性DP 傳紙條

這道題資料很小所以我們o n 4 o n 4 o n4 也可以過也就是4個狀態去的時候的x1,x2 x 1,x 2 x1 x2 和回來的時候的x3,x4 x 3,x 4 x3 x4 座標的最大值。正解 言歸正傳 我們如何確定兩個點是否相交呢?是不是我們橫縱座標相等並且我們的x座標或者y座標也相等的時...

傳紙條(普通dp)

小淵和小軒是好朋友也是同班同學,他們在一起總有談不完的話題。一次素質拓展活動中,班上同學安排做成乙個 mmm 行 nnn 列的矩陣,而小淵和小軒被安排在矩陣對角線的兩端,因此,他們就無法直接交談了。幸運的是,他們可以通過傳紙條來進行交流。紙條要經由許多同學傳到對方手裡,小淵坐在矩陣的左上角,座標 1...