【题面】
每天早上,农夫约翰的奶牛们被挤奶的时候,都会站成一个R行C列的方阵。
现在在每个奶牛的身上标注表示其品种的大写字母,则所有奶牛共同构成了一个R行C列的字符矩阵。
现在给定由所有奶牛构成的矩阵,求它的最小覆盖子矩阵的面积是多少。
如果一个子矩阵无限复制扩张之后得到的矩阵能包含原来的矩阵,则称该子矩阵为覆盖子矩阵。
【输入格式】
第1行:输入两个用空格隔开的整数,R和C。
第2..R+1行:描绘由奶牛构成的R行C列的矩阵,每行C个字符,字符之间没有空格。
【输出格式】
输出最小覆盖子矩阵的面积。(每个字符的面积为1)
【数据范围】
1≤R≤10000,
1≤C≤75
【输入样例】
2 5
ABABA
ABABA
【输出样例】
2
【提示】
样例中给出的矩阵的最小覆盖子矩阵为AB,面积为2。
- 这道题的难度在于,它是二维的。如果将它只是一维的,那我们很容易就看出来是个KMP题(求最小循环节)
- 所以如何二维处理?我们可以分开,行和列各自处理,将行的结果*列的结果就是矩阵的大小
- 如果要求列的结果,我们可以将整一行看成一个元素,将这些元素进行KMP(下面的例子中,第1、3、5行是一样的,可将它们等价为相同的元素1;第2、4行是一样但又不同于其他行的,可将它们等价为相同的元素2&#x