原题地址:http://csustacm.com:4803/problem/1115
题意:给出一个大矩阵,再给出若干小矩阵,问大矩阵中是否存在小矩阵。
思路:二维哈希模板。
void Hash(int n, int m) {
//对于某个长为n,宽为m的矩阵,h[n][m]就代表了这个矩阵的哈希值
for (int i = 1; i <= n; i++) {
//行哈希
for (int j = 1; j <= m; j++) {
h[i][j] = (h[i][j - 1] * seed1 + a[i][j] - 'a' + 1);
}
}
for (int i = 1; i <= n; i++) {
//列哈希
for (int j = 1; j <= m; j++) {
h[i][j] = (h[i - 1][j] * seed2 + h[i][j]);
}
}
}
p1[0] = p2[0] = 1;
for (int i = 1; i <= 1005