2017.07.02 P4 王老师的舞步
题目描述
地毯上的格子有N行N列,每个格子用一个0~5之间的数字代表它的颜色。
王老师可以随意选择一个0~5之间的颜色,然后轻轻地跳动一步,左上角的格子所在的联通块里的所有格子就会变成他选择的那种颜色。这里连通定义为:两个格子有公共边,并且颜色相同。
由于王老师跳舞需要体力,而没有体力他就不能淘汰学生,为了淘汰更多的学生好让这个班跑起来,他想知道最少要多少步才能把所有格子的颜色变成一样的。
输入格式
每个测试点包含多组数据。
每组数据的第一行是一个整数N,表示地摊上的格子有N行N列。
接下来一个N*N的矩阵,矩阵中的每个数都在0~5之间,描述了每个格子的颜色。
N=0代表输入的结束。
输出格式
对于每组数据,输出一个整数,表示最少步数。
样例输入
2
0 0
0 0
3
0 1 2
1 1 2
2 2 1
0
样例输出
0
3
数据范围
对于30%的数据,N<=5
对于50%的数据,N<=6
对于70%的数据,N<=7
对于100%的数据,N<=8,每个测试点不多于20组数据
限制
1s
样例解释
0 1 2 1 1 2 2 2 2 1 1 1
1 1 2 --> 1 1 2 --> 2 2 2 --> 1 1 1
2 2 1 2 2 1 2 2 1 1 1 1
提示
输入n直到n=0的代码:
while(scanf("%d", &n), n)
或while(cin >> n, n)
来源
CWOI新高二专题测试一