矩阵哈希

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];
    }
}
全部评论

相关推荐

05-30 12:03
山西大学 C++
offer来了我跪着接:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务