[eJOI2020 Day2] Dots and Boxes
题目背景
小 T 和小 A 在玩一种点格游戏。
题目描述
首先,小 T 拿出了一张拥有 $(N+1) \times (M+1)$ 个格点的方格纸(这些格子从上到下,从左到右可以编号为第 $1 \sim N+1$ 行第 $1 \sim M+1$ 列的格点),每个格点向上下左右的那个格点(如果那个方向有格点的话)连边,不难发现,会形成一个 $N \times M$ 的方格矩阵。但是小 T 拿出的是没有连边的格点方格纸,小 T 和小 A 的目标就是在格点之间连线。
游戏规则是这样的,每一轮玩家可以在两个格点之间连线,如果连完线能连好一个格子,那么这个格子就属于这个玩家了。然后玩家可以继续连线,直到连完线不能获得格子为止,就换到下一个玩家。当所有玩家都不能连线时,游戏结束。
比如下面这张图即为当 $N=2,M=3$ 时两位玩家可能的连线结果:
![](https://cdn.luogu.com.cn/upload/image_hosting/sngf2kqv.png)
其中虚线为这一轮玩家连的线。
小 A 和小 T 已经玩了许久了,你发现他们现在的方格纸满足每一个格子周围的四条边都有 **$0$ 条或 $2$ 条未被连线**,比如下面这张图就满足要求,上面这张图除了第一幅图也都满足要求:
![](https://cdn.luogu.com.cn/upload/image_hosting/gzoveutp.png)
并且刚好轮到小 A 了。
定义小 A 和小 T 的分数 $S_A,S_T$ 为玩家从现在开始得到的分数,那么整个游戏的分数即为 $S_A-S_T$,小 A 要让整个游戏的分数变得越大越好,小 T 则反之,他们都会按照他们的目标做最优策略。
你要求出他们做最优策略下得到的分数。
输入输出格式
输入格式
第一行两个整数 $N,M$ 代表方格纸的大小。
接下来 $N+1$ 行每行 $M$ 个 **不用空格隔开的** 整数,包含 $0$ 和 $1$,第 $i$ 行第 $j$ 个数为 $0$ 就代表第 $i$ 行第 $j$ 列的格点与第 $i$ 行第 $j+1$ 列的格点之间没有连线,$1$ 则反之。
接下来 $N$ 行每行 $M+1$ 个 **不用空格隔开的** 整数,包含 $0$ 和 $1$,第 $i$ 行第 $j$ 个数 $0$ 就代表第 $i$ 行第 $j$ 列的格点与第 $i+1$ 行第 $j$ 列的格点之间没有连线,$1$ 则反之。
输出格式
输入输出样例
输入样例 #1
3 3
000
111
011
110
1010
1000
1001
输出样例 #1
-5
输入样例 #2
5 5
00100
10100
11010
00100
01000
11100
011111
001011
101011
110111
100111
输出样例 #2
6
说明
#### 样例 1 解释
下图为其中一种连线方式,红色为小 A 的操作,蓝色为小 T 的操作:
![](https://cdn.luogu.com.cn/upload/image_hosting/cu0mah7j.png)
#### 样例 2 解释
这个样例为题目描述中的第二个图片。
#### 数据规模与约定
**本题采用捆绑测试。**
- Subtask 1(20 pts):给出的输入只包含一个连通块。
- Subtask 2(20 pts):$N \times M \le 12$。
- Subtask 3(20 pts):给出的输入只包含两个连通块。
- Subtask 4(20 pts):$N,M \le 7$。
- Subtask 5(20 pts):无特殊限制。
对于 $100\%$ 的数据,$3 \le N, M \le 20$,**每一个格子周围的四条边都有 $0$ 条或 $2$ 条未被连线**。
其中一个连通块定义为已连上的边与方格纸的边缘围起来的块,比如说下面这个图有 $5$ 个连通块:
![](https://cdn.luogu.com.cn/upload/image_hosting/6g0pk8w2.png)
注意已被玩家占有的方格不属于任意一个连通块。
#### 说明
翻译自 [eJOI 2020 Day2 C Dots and Boxes](https://ejoi2020.ge/static/assets/Day2/Problems/Game.pdf)。