【bzoj2462】[BeiJing2011]矩阵模板
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std; #define MAXN 100000000
#define prime1 9983543
#define prime2 9804799
#define MOD 99999971
#define N 1010 int m,n,A,B,q; unsigned int hash; unsigned int a[N][N],b[N][N],p1[N],p2[N];
bool h[MAXN]; int main()
{
scanf("%d%d%d%d",&m,&n,&A,&B);
for (int i=;i<=m;i++)
for (int j=;j<=n;j++)
scanf("%1d",&a[i][j]);
for (int i=;i<=m;i++)
for (int j=;j<=n;j++)
a[i][j]+=a[i-][j]*prime1;
for (int i=;i<=m;i++)
for (int j=;j<=n;j++)
a[i][j]+=a[i][j-]*prime2;
p1[]=;
p2[]=;
for (int i=;i<=min(m,n);i++)
p1[i]=p1[i-]*prime1,p2[i]=p2[i-]*prime2;
for (int i=A;i<=m;i++)
for (int j=B;j<=n;j++)
{
hash=a[i][j];
hash-=a[i-A][j]*p1[A];
hash-=a[i][j-B]*p2[B];
hash+=a[i-A][j-B]*p1[A]*p2[B];
hash%=MOD;
h[hash]=;
}
scanf("%d",&q);
while (q--)
{
for (int i=;i<=A;i++)
for (int j=;j<=B;j++)
scanf("%1d",&b[i][j]);
for (int i=;i<=A;i++)
for (int j=;j<=B;j++)
b[i][j]+=b[i-][j]*prime1;
for (int i=;i<=A;i++)
for (int j=;j<=B;j++)
b[i][j]+=b[i][j-]*prime2;
puts(h[b[A][B]%MOD] ? "" : "");
}
return ;
}
【bzoj2462】[BeiJing2011]矩阵模板的更多相关文章
- BZOJ2462[Beijing2011]矩阵模板(二维Hash)
二维矩阵匹配问题,至今不知道Q的范围是多少,反正是要求做到读入复杂度. 二维Hash:就是一维的等效拓展,注意两维的Base不能相同. 其余就是一维Hash和二维前缀和的结合,可以自然溢出,据说概率很 ...
- 【题解】 bzoj2462: [BeiJing2011]矩阵模板
题面戳我 Solution 二维矩阵\(hash\),判断即可 自己YY了一个方法,\(bzoj\)T到飞,(一开始还用的三\(hash\)),交到luogu貌似跑的不慢啊qwq (我是不会告诉你全输 ...
- [bzoj2462] [BeiJing2011]矩阵模板
二维的hash.. 注意n的范围是1000........ 真相似乎是全部输出1就行了233 #include<cstdio> #include<iostream> #incl ...
- 【kmp算法】【Rabin-Karp算法】bzoj2462 [BeiJing2011]矩阵模板
算法就不说了,反正是基于字符串匹配的.这里比较一下kmp和Rabin-Karp算法. <法一>kmp算法. 592788 lizitong 2462 Accepted 4828 kb 68 ...
- [BZOJ2462] [BeiJing2011]矩阵模板(二维Hash)
传送门 二维哈希即可. 注意质数选的大一些,不然会超时. 还有插入的时候不判重居然比判重要快.. ——代码 #include <cstdio> int main() { ; ") ...
- BZOJ 2462: [BeiJing2011]矩阵模板
2462: [BeiJing2011]矩阵模板 Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 915 Solved: 432[Submit][Stat ...
- BZOJ.2462.[BeiJing2011]矩阵模板(二维Hash)
题目链接 序列上的Hash和前缀和差不多,二维Hash也和二维前缀和差不多了. 预处理大矩阵所有r*c的小矩阵hash值,再对询问的矩阵Hash. 类比于序列上\(s[r]-s[l-1]*pow[r- ...
- BZOJ 2462 [BeiJing2011]矩阵模板 矩阵哈希
昨天卡了一天常数...然后发现吧$unsigned\space long\space long$改成$unsigned$就可以过了$qwq$ 先把每一行的前缀哈希求出,然后再竖着把每个前缀哈希值哈希起 ...
- POJ_Fibonacci POJ_3070(矩阵快速幂入门题,附上自己写的矩阵模板)
Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10521 Accepted: 7477 Descri ...
随机推荐
- 如何用 CSS 创作一个立体滑动 toggle 交互控件
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/zjoOgX 可交互视频教程 此视 ...
- CSS3---媒体查询与响应式布局
1. 值 设备类型 All 所有设备 Braille 盲人用点字法触觉回馈设备 Embossed 盲文打印机 Handheld 便携设备 Print 打印用纸或打印预览视图 Projection 各种 ...
- 关于在Safari浏览器中将网页添加到主屏幕的相关设置(自定义图标,启动动画,自定义名称)
在ios中我们可以使用Safari浏览自带的将网页添加到主屏幕上,让我们的web页面看起来像native那样 第一步: 第二步: 第三步: 到这里还没结束:我们还要进行相关设置才能使我们的应用更像原生 ...
- LeetCode(81) Search in Rotated Array II
题目 Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would t ...
- 【BZOJ 2462】矩阵模板 (二维哈希)
题目 给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在 原矩阵中出现过. 所谓01矩阵,就是矩阵中所有元素不是0就是1. 输入 输入文件的第一行为M.N.A.B,参见 ...
- 【HDU 3037】Saving Beans(卢卡斯模板)
Problem Description Although winter is far away, squirrels have to work day and night to save beans. ...
- mac 终端path配置出错,命令无法使用
mac 命令行中修改path的时候,不小心把path修改错了,而且还 source 了,然后发现只能使用 cd 命令,ls vi 命令都不能使用了. 解决办法,执行下面的语句 export PATH= ...
- 理解js的几个关键问题(1):全局变量new和关于hasOwnPropery和PropertyIsEnumerable 等
一.作用域和全局变量 var test=function(){ var a=1; setTimeout(function(){ console.log(a); a=2; },1000); a=3; s ...
- 把以100000+4位随机码的登录账号(比如1000001234),赋予制单页面的权限,怎么写sql啊
insert into sys_user_role (user_id,role_id,office_id) select id,'000101100000000004UP',company_id f ...
- [USACO10FEB]慢下来Slowing down
线段树 树的dfs序 来自 洛谷 P1982 的翻译 by GeneralLiu 来自 jzyz 的翻译 %mzx 线段树 dfs序 数据结构的应用 “数据结构 是先有需求 再有应用” ...