T1
任意时刻棋子不会互相干扰。
那么我们直接做一个费用流模型。
然后用(ZKW)费用流给他搞上就行了。
T2
设(dp[l][r][h])为区间([l,r])中(h)以下的点全都被覆盖的最小矩形数。
然后枚举中间点来更新。
同时把覆盖整个区间的情况给转移到位。
从左右分别指针扫到比当前最高高度更高点的区间。
T3
我们把合约数和当前点连边。
然后连通块情况是等价的。
求出每一个连通块的实点个数。
找到最大的连通块,然后跑点双高出圆方树。
考虑所有的割点割出的剩余的连通块。
然后把那些连通块统计一下,做一个类似重心的操作求出最小的最大值连通块大小即可。