bzoj2462(矩阵二维hash)……不会的题就hash
来源:互联网 发布:手机时间软件下载 编辑:程序博客网 时间:2024/05/23 02:01
实际上,就是横着hash一次,再竖着hash一次,注意横竖的base不能相同
冲突是难以避免的
取一个矩阵的hash
a[i][j]-
a[i][j-mm]*qb1[mm]-
a[i-nn][j]*qb2[nn]+
a[i-nn][j-mm]*qb1[mm]*qb2[nn];
hs[++tot]=hss;//二维差分取hash值
也是通过差分来取,和一维的差不多
这题就是把所有等大的hash值取出来,排序,加入的小矩阵,hash一下判定就好
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<algorithm>#include<queue>using namespace std;typedef unsigned int ull;typedef long long ll;const int base1=2;//base 取质数,这两个质数不能相同 const int base2=9191891;int n,m,nn,mm;unsigned int a[1005][1005],qb1[1005],qb2[1005],hs[1000509],tot; char mp[1005][1005];int main(){scanf("%d%d%d%d",&n,&m,&nn,&mm);qb1[0]=qb2[0]=1;for (int i=1;i<=1003;i++) qb1[i]=qb1[i-1]*base1, qb2[i]=qb2[i-1]*base2;for (int i=1;i<=n;i++) scanf("%s",mp[i]+1);for (int i=1;i<=n;i++)for (int j=1;j<=m;j++) a[i][j]=a[i][j-1]*base1+mp[i][j]-'0';for (int i=1;i<=n;i++)for (int j=1;j<=m;j++) a[i][j]=a[i-1][j]*base2+a[i][j];for (int i=nn;i<=n;i++)for (int j=mm;j<=m;j++){unsigned int hss=a[i][j]-a[i][j-mm]*qb1[mm]-a[i-nn][j]*qb2[nn]+a[i-nn][j-mm]*qb1[mm]*qb2[nn];hs[++tot]=hss;//二维差分取hash值 }sort(hs+1,hs+tot+1);memset(a,0,sizeof(a));int tt=0,q;scanf("%d",&q);for (int i=1;i<=q;i++){for (int i=1;i<=nn;i++) scanf("%s",mp[i]+1);for (int i=1;i<=nn;i++)for (int j=1;j<=mm;j++) a[i][j]=a[i][j-1]*base1+mp[i][j]-'0';for (int i=1;i<=nn;i++)for (int j=1;j<=mm;j++) a[i][j]=a[i-1][j]*base2+a[i][j];int k=lower_bound(hs+1,hs+tot+1,a[nn][mm])-hs;if (hs[k]==a[nn][mm]) printf("1\n");else printf("0\n");}return 0;}
0 0
- bzoj2462(矩阵二维hash)……不会的题就hash
- BZOJ2462 二维hash
- [BZOJ2462]矩阵模板(暴力||矩阵hash)
- Wannafly模拟赛 矩阵 二维矩阵hash
- [BZOJ]2462: [BeiJing2011]矩阵模板 二维hash
- bzoj1141(矩阵hash)
- 字符串hash(二维)-poj3690
- 【大二最后一题】Wannafly模拟赛 矩阵【二分+二维字符串Hash】
- BZOJ 2462 BeiJing 2011 矩阵模板 二维hash
- BZOJ 2462 BeiJing 2011 矩阵模板 二维hash
- POJ 3690 字符串的二维hash
- URAL 1486(二维字符串hash)
- bzoj 2351: [BeiJing2011]Matrix(二维Hash)
- ural1486_二维hash匹配
- 二维hash(Uva 12886)
- poj 3690 Constellations 矩阵的hash
- 【BeiJing2011】【BZOJ2462】矩阵模板
- BZOJ2462矩阵模板
- 记录J-Flash ARM使用过程中的一个纠结问题
- JavaScript基础(8) BOM
- tomcat项目部署后启动,work文件夹项目为空,log日志也为空,请求各种404
- intellij 设置大全
- Debug NetBeans: Resolve Missing Debugger Command
- bzoj2462(矩阵二维hash)……不会的题就hash
- uml访问web流程
- JavaScript权威指南——从笨鸟到菜鸟(一) JavaScript概述
- Java中IO中文件的操作
- JSP相关
- SVN相关
- 使用Java调用SAP函数
- Linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- liunx下mysql5.6创建用户并给指定的数据库授权详解 ---谷营中西