https://www.luogu.com.cn/problem/CF1408H
先转换
模拟网络流,所以要么割最上面一层,要么割最下面一层。
对于最上一层,肯定是左边连续+右边连续。
考虑枚举左边连续,对应到某些颜色节点,又对应到某些右边节点。
对右边节点建棵线段树,由于左边的点已经确定,先假设下面的和右边的点全部割掉。
右边的点全部割掉,所以线段树初始全为-1。
颜色节点对应到右边节点位置时,在那个位置+1,表示可以少割一条颜色边。
然后线段树求最大后缀和即可。
https://www.luogu.com.cn/problem/CF1408H
先转换
模拟网络流,所以要么割最上面一层,要么割最下面一层。
对于最上一层,肯定是左边连续+右边连续。
考虑枚举左边连续,对应到某些颜色节点,又对应到某些右边节点。
对右边节点建棵线段树,由于左边的点已经确定,先假设下面的和右边的点全部割掉。
右边的点全部割掉,所以线段树初始全为-1。
颜色节点对应到右边节点位置时,在那个位置+1,表示可以少割一条颜色边。
然后线段树求最大后缀和即可。