题解
在矩形外围一圈D,将所有相邻格子连边,海岸线相当于相连的两个格子种类不同的边的数量。
如果是最小化边数就是很经典的最小割模板了,考虑将最大化问题转成最小化相连的两个格子种类相同的边的数量:
- 每个点向相邻点连边,容量为1
- 将格黑白染色,黑色格上的 . . .与 S S S相连, D D D与 T T T相连,白色格上的 D D D与 S S S相连, . . .与 T T T相连,容量均为 + ∞ +\infty +∞。
答案就是 ( n + 1 ) ( m + 2 ) − ( n + 2 ) ( m + 1 ) − (n+1)(m+2)-(n+2)(m+1)- (n+1)(m+2)−(n+2)(m+1)−最小割
最小割等价于最少的相连的两个格子种类相同的边的数量。
口胡正确性:最小割必然是
.
→
.
.\to .
.→.或者
D
→
D
D\to D
D→D的路径,若路径就是相邻的相同点则成立,否则路径必然经过偶数个
E
E
E,若每条未割掉的边代表两端种类不同,那么起点出发递推下去必然倒数第二个点和终点类型相同,所以会割掉一条边。
(还需要思考一下,纠结了好久,雾)