洛谷 p1006 传纸条 [ DP ]
https://www.luogu.com.cn/problem/P1006
题意:一个棋盘,左上到右下,两条不相交的权值最大的路径,只首尾重合。
$d[i][j][x][y]$ 表示第一条路到 $(i,j)$ 第二条到 $(x,y)$
$d[i][j][x][y]=max(d[i-1][j][x-1][y],d[i-1][j][x][y-1],d[i][j-1][x-1][y],d[i][j-1][x][y-1])$
$+a[i][j]+a[x][y]$
枚举 $i,j,x,y$ 的时候$(i,j)$ 默认在 $(x,y)$ 下面,因为不能相交,总有一条在下面。当只有 $y=j+1$
有一点重合,判断一下即可。
1 | const int MAX=50+10; |