[USACO2003][poj2185]Milking Grid(kmp的next的应用)
题目:http://poj.org/problem?id=2185
题意:就是要求一个字符矩阵的最小覆盖矩阵,可以在末尾不完全重合(即在末尾只要求最小覆盖矩阵的前缀覆盖剩余的尾部就行了)
分析:
先看一维的,对于一个一维字符串的最小覆盖子串首先肯定是它的一个前缀,而这个前缀的最小长度为n-next[n],证明在这里http://blog.csdn.net/fjsd155/article/details/6866991
然后发现这题就是二维的,于是可以考虑求出所有行的最小覆盖子串长度,而这些长度的lcm就是我们要求的最小覆盖子矩阵的一边长,同理对列也这么处理得出另一边长,然后相乘得到面积。(值得注意的是,如果lcm超过了给定矩阵的长或宽,那么就改为原长和原宽。