typedef unsigned long long ull;
ull p1[1010],p2[1010];
int a[1010][1010];
int Hash1[1010][1010],Hash2[1010][1010];
int k1=233,k2=131;
for(int i=1;i<=n;i++){ //先按行进行处理
for(int j=1;j<=m;j++){
Hash1[i][j]=Hash1[i-1][j]*k1+a[i][j];
}
}
for(int i=1;i<=n;i++){ //再按列进行处理
for(int j=1;j<=m;j++){
Hash1[i][j]=Hash1[i][j-1]*k2;
}
}
p1[0]=1,p2[0]=1;
for(int i=1;i<=n;i++) p1[i]=p1[i-1]*k1;
for(int i=1;i<=n;i++) p2[i]=p2[i-1]*k2;
//找出矩阵大小为x,y的小矩阵
for(int i=x;i<=n;i++) {
for(int j=y;j<=m;j++){
ull tmp=Hash1[i][j]-Hash1[i-x][j]*p1[x]-Hash1[i][j-y]*p2[y]+Hash1[i-x][j-y]*p1[x]*p2[y];
}
}