快乐的一天从AC开始 | 20210704 | P2045

题目链接

看到数据范围之后就猜是网络流之类的做法,仔细研究了下确实直接费用流就可以做。

首先,这题要求得是最大代价,相当于把代价取相反数的最小代价,之后再取一次相反数。

然后,搞超级源点和超级汇点,分别和\(a_{11}\)\(a_{nn}\)连边,容量为\(k\),代价为0,表示可以走\(k\)次。

再来是拆点,对于每一个格子,将其拆分成入点和出点两个点,再这两个点之间加两条边:

  • 一条边容量为1,代价为\(-a_{ij}\),表示第一次经过这个格子的收益。
  • 一条边容量为INF,代价为0,表示后续可以无限经过,但是没有收益。

最后,每个格子向右和向下连边,容量为INF,代价为0,表示可以无限次转移,但是没有收益。

posted @ 2021-07-04 10:08  _Backl1ght  阅读(17)  评论(0编辑  收藏  举报