思路:兩人乙個從左上角出發只能向右和向下,另一人從右下角出發只能向左和向上,可以看做兩人都是從右下角出發,且只能向左和向上傳紙條,並且兩條路徑不會相交,因為乙個人只會傳一次,那麼隨便畫乙個圖就能知道兩條路徑是閉合的圖形。因此我們可以定義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列的矩陣,而小淵和小軒被安排在矩陣對角線的兩端,因此,他們就無法直接交談了。幸運的是,他們可以通過傳紙條來進行交流。紙條要...