检测到 KaTeX 加载失败,可能会导致文中的数学公式无法正常渲染。
#题面
#题目描述
给出一个 的矩阵,每一格有一个非负整数 现在从 出发,可以往右或者往下走,最后到达 。每到达一格,把该格的数取出并将原位置归 ,这样一共走 次,请你求出走 次所达到的方格的数的和的最大值。
#输入格式
第一行两个数 。
接下来 行,每行 个数,分别表示矩阵上的每个格子中的数。
#输出格式
走 次所达到的方格的数的和的最大值。
#输入输出样例
输入样例 #1
3 1
1 2 3
0 2 1
1 4 2
输出样例 #1
11
#数据范围与约定
对于 的数据,,,。
#思路
按照网格建立网络,将每个点拆成入点和出点两个点,入点向出点连两条边:一条 表示第一次经过(负数是为了把最大费用最大流转化为最小费用最大流),另一条 供后几次经过使用。每个点的出点向右方和下方连 的边。之后将从超级源点向 、从 向超级汇点分别连两条 的边,再求出最小费用最大流即可。
最后输出答案时别忘了将负数再转回正数。
#代码
1 |
|