nyoj61 傳紙條(一) dp

2021-07-31 06:14:33 字數 1005 閱讀 7431

思路:兩人乙個從左上角出發只能向右和向下,另一人從右下角出發只能向左和向上,可以看做兩人都是從右下角出發,且只能向左和向上傳紙條,並且兩條路徑不會相交,因為乙個人只會傳一次,那麼隨便畫乙個圖就能知道兩條路徑是閉合的圖形。因此我們可以定義dp(x1, y1, x2, y2)是從(0, 0)出發第一人到達(x1, y1)處,第二人到達(x2, y2)處時能得到的最大好感度。兩條路徑的長度是一致的,即兩人應該同時出發,因為dp(x1, y1, x2, y2) =  dp( x2, y2,x1, y1

),所以約束(

x2, y2

) 一定位於(x1, y1)的上方和右方,就能很好的開始轉移了。

ac**

#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#pragma comment(linker, "/stack:1024000000,1024000000")

#define eps 1e-10

#define inf 0x3f3f3f3f

#define pi pairtypedef long long ll;

const int maxn = 50 + 5;

int w[maxn][maxn], dp[maxn][maxn][maxn][maxn];

int n, m;

const int dx = ;

const int dy = ;

bool is_in(int x, int y)

//兩個人每次都要走一步

int dfs(int a, int b, int c, int d)

} }return ans;

}int main()

return 0;

}

如有不當之處歡迎指出!

nyoj 61 傳紙條(一)

分析 一道雙線程動態規劃題,與第六屆河南acm比賽的題類似.題意 小紙條從 1,1 傳到 m,n 再傳回來,並且路線不能交叉,使好感度之和最高.我們可以認為是同時找出兩條從 1,1 傳到 m,n 的不相交的路線.方法是 計算每一步情況下的情況,一條道路用i,j控制,另一條用x,y控制.從矩陣的角度看...

nyoj61 傳紙條(一) (雙線dp)

初次學雙程序dp,其實就是多維dp,但是就是多一維我的腦子就轉不過來了,模模糊糊看得懂而已,從矩陣的左上角 1,1 點到矩陣的右下角 m,n 點找到兩條不相交的路徑使其值最大,題中是從 1,1 到 m,n 走一次,再從 m,n 到 1,1 走一次,我們可以等價變形 一下,變為 同時從 1,1 走向 ...

nyoj 61 傳紙條(一) 動態規劃

時間限制 2000 ms 記憶體限制 65535 kb 難度 5 描述 小淵和小軒是好朋友也是同班同學,他們在一起總有談不完的話題。一次素質拓展活動中,班上同學安排做成乙個m行n列的矩陣,而小淵和小軒被安排在矩陣對角線的兩端,因此,他們就無法直接交談了。幸運的是,他們可以通過傳紙條來進行交流。紙條要...