#C08L08P05. C08.L08.深度优先搜索DFS.课堂练习3.水流

C08.L08.深度优先搜索DFS.课堂练习3.水流

题目描述

全球气候变暖,小镇 A 面临水灾。于是你必须买一些泵把水抽走。泵的抽水能力可以认为是无穷大,但你必须把泵放在合适的位置,从而能使所有的水能流到泵里。

小镇可以认为是 N×MN × M 的矩阵。矩阵里的每个单元格都是一个 aza \sim z 小写字母,该小写字母表示该格子的高度,字母大的表示该单元格比较高,反之,表示该格子高度比较低。当前单元格的水可以流到上、下、左、右四个格子,但必须满足这些格子的高度是小于或者等于当前格子的高度。现在,给你一些 N×MN × M 的矩阵,你至少要买多少个泵,才能把所有格子的水都能被抽走?

输入格式

多组测试数据。

第 1 行,一个整数 KK,表示有KK 组测试数据,1K51 \le K \le 5

接下来有 KK 组测试数据,每组测试数据格式如下:

第一行,两个正数,NMN,M1NM501 \le N,M \le 50,表示小镇的大小;

接下来有 NN 行,每行有 MM 个小写字母,表示小镇的地图。

输出格式

KK 行,每行对应一组数据。至少要买多少个泵,才能把所有格子的水都能抽走。

样例

2
5 5
ccccc
cbbbc
cbabc
cbbbc
ccccc
4 9
cbabcbabc
cbabcbabc
cbabcbabc
cbabcbabc
1
2