给定一个由 n 行数字组成的数字梯形如下图所示。梯形的第一行有 m 个数字。从梯形的顶部的 m 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形的顶至底的路径。 规则1:从梯形的顶至底的m条路径互不相交。 规则2:从梯形的顶至底的m条路径仅在数字结点处相交。 规则3:从梯形的顶至底的m条路径允许在数字结点相交或边相交。 对于给定的数字梯形,分别按照规则1,规则2,和规则 3 计算出从梯形的顶至底的 m条路径,使这 m条路径经过的数字总和最大。
(m,n<=20)
2 5 2 3 3 4 5 9 10 9 1 1 1 10 1 1 1 1 10 12 1 1
66 75 77
这道题强行将三道题揉成了一道题,但这也有助于对边的限制于点的限制的理解。 首先,将点p拆成p1,p2,p1于p2之间的容量就是点的限制 ①:m条路径不相交 只要点不相交,边就不会相交,路径就不会相交。 所以S向顶层的p1连一条容量1,费用0的有向边 每一层的p2向下一层相邻的两个点的p1连一条容量1,费用0的有向边 对于每个点p1向p2连一条容量为1,费用为权值的有向边 然后最大费用最大流 ②:边不相交 将p1向p2连的边的容量改为inf 然后最大费用最大流 ③:没有限制 可以用dp,也可以将两层之间连的边容量改为inf,然后最大费用最大流 关于最大费用最大流的求法,可以将边的费用取相反数,最后的答案也取相反数
新闻热点
疑难解答