【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 ...
随机推荐
- 【HIHOCODER 1575】 两个机器人(BFS)
描述 一个N × M的2D迷宫中有两个机器人.机器人A在迷宫左上角,只能向右或向下移动:机器人B在迷宫右下角,只能向左或向上移动.机器人不能移动到迷宫外.此外,由于奇怪的同步机制,这两个机器人只能同时 ...
- JustinMind
看到公司老板新请来的兼职产品经理,在讲项目功能设计图是,用的是justinmind这个工具,觉得很好奇,默默记下,或许以后能用到.下面是搜的简单的介绍,只是为了记住这个工具名字,现并没有想要深入探究这 ...
- spring的IOC底层原理
我们调用一个类的方法,首先是User user=new User(),对象调用这个方法,user.add(),这种方法有一个缺陷就是代码的耦合度太高,比如你的servlet调用User类里的方法,需 ...
- hdu 4710
#include<stdio.h> #include<math.h> __int64 min(__int64 a,__int64 b) { return a<b?a:b; ...
- nginx学习网站收录
1.菜鸟教程 2. Nginx中文 3. Nginx官网 参考:http://www.cnblogs.com/knowledgesea/p/5175711.html
- hihoCoder #1014 : Trie树 [ Trie ]
传送门 #1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互 ...
- 离线配置Anaconda3+tensorflow-gpu1.4.0+cuda8.0+cudnn6.0
1.首先下载anaconda3 ----从官网上下载Anaconda3-5.1.0-Linux-x86_64.sh 直接通过命令 bash Anaconda3-5.1.0-Linux-x86_64.s ...
- MySQL基础架构
前段时间订阅了<Mysql实战45讲>(从原理到实战),新的一年为自己充充电.对于这部分内容,我所知道的只来源于我大学里学习的课程<数据库原理>,在大学里学习的只是简单的查询, ...
- Best Time to Buy and Sell Stock(动态规划)
Say you have an array for which the ith element is the price of a given stock on day i. If you were ...
- java构造方法的特点和理解--三只坚果
构造方法的特点:1.首先构造方法是基于类,名字必须与类的名字完全相同(构造方法一般是自己编写的类需要初始化)2.每个类都有一个默认的构造方法,既无参数又无返回值,其作用是使用new操作符创建新对象后初 ...