寿司餐厅

最大权闭合子图:这个建图套路的模板题是植物大战僵尸。我做了但是好像忘了。
最大权闭合子图的定义:有个图,每个点有点权,表示选择了这个点获得的收益(可能为负)。

如果选了一个点,则必须选它的后继,求最大收益。

在理想状态下所有正权点都被选择,价值记w

先用拓扑排序消环。如果原图上有一条边,则在新图上连一条流量为inf的边。如果一个点的权值为正,则s向它连权值,否则它向t连负权值。然后用w-最小割就是答案。

被删除的只会是源点->某点或者某点->汇点的边。一个正权点被分到t集合就是未被选,负权点被分到s集合就是被选,都要付出代价。

如果有一条路径s->t,则说明有未被选的点->被选的点的路径,不符合要求。

这道题由于要选一个区间,所以选择了(i,j)就要选(i+1,j),(i,j-1)。

所以建n^2个点,(i,j)向(i+1,j),(i,j-1)连inf,(i,j)的权值为a[i][j]

买寿司的费用为mx^2+cx。

对于后面的项对于每一种寿司拆一个点权值为-c,把(i,i)向对应点连边。

对于每一个代号建一个点权值为mx^2,把上次拆的点向现在的点连边。

再使用最大权闭合子图连边即可。

猜你喜欢

转载自www.cnblogs.com/cszmc2004/p/12970267.html