Matrix[矩阵hash]

网友投稿 242 2022-09-23

Matrix[矩阵hash]

#include#define N 1050#define T 105#define ULL unsigned long longusing namespace std;int a[N][N],n,m,A,B,q;ULL hash[N][N] , base[T*T];map M;int main(){ scanf("%d%d%d%d",&n,&m,&A,&B); base[0]=1; for(int i=1;i<=A;i++) base[i] = base[i-1] * 31; for(int i=1;i<=n;i++){ char s[N]; scanf("%s",s); for(int j=1;j<=m;j++){ a[i][j] = s[j-1] - '0'; hash[i][j] = hash[i][j-1] * 31 + a[i][j]; } } for(int i=1;i<=n-A+1;i++){ for(int j=1;j<=m-B+1;j++){ ULL Hash=0; for(int k=i;k<=A+i-1;k++){ Hash = (Hash + hash[k][j+B-1] - hash[k][j-1] * base[j]) * base[A]; } M[Hash]++; } } scanf("%d",&q); while(q--){ ULL Hash=0; for(int i=1;i<=A;i++){ char s[N]; scanf("%s",s); for(int j=1;j<=B;j++){ Hash = (Hash + (s[j-1]-'0')) * 31; } } if(M[Hash*31]) printf("1\n"); else printf("0\n"); }return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数英DIGITALING:全世界都在打折,考拉海购却只想让你躺购...!
下一篇:能量项链[区间DP]
相关文章

 发表评论

暂时没有评论,来抢沙发吧~