可能的模拟网络流部分思路整理(CF1408H)

本文搬运自本人高中时期CSDN博客,若图片加载不出来,可到原文查看:https://blog.csdn.net/zhangtingxiqwq/article/details/132093428

https://www.luogu.com.cn/problem/CF1408H

先转换

模拟网络流,所以要么割最上面一层,要么割最下面一层。

对于最上一层,肯定是左边连续+右边连续。

考虑枚举左边连续,对应到某些颜色节点,又对应到某些右边节点。

对右边节点建棵线段树,由于左边的点已经确定,先假设下面的和右边的点全部割掉。

右边的点全部割掉,所以线段树初始全为-1。

颜色节点对应到右边节点位置时,在那个位置+1,表示可以少割一条颜色边。

然后线段树求最大后缀和即可。

在这里插入图片描述