【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 ...
随机推荐
- python中unicode, hex, bin之间的转换
python中unicode, hex, bin之间的转换 背景 在smb中有个feature change notify, 需要改动文件权限dacl,然后确认是否有收到notify.一直得不到这个d ...
- xmind 8 readme
xmind 8 readme README LICENSE XMind 3 is dual licensed under 2 open source licenses: the Ecl ...
- 用AOP来让你的JS代码变得更有可维护性吧
此文已由作者吴佳祥授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 好吧我承认这是篇任务. 最近看到个消息,ES2017已经定稿了,心想,我去,还完全没了解ES2016呢,ES ...
- RobotFramework:切换页面和Frame框架
切换页面主要有以下两种情况 在浏览器上打开多个窗口(Windows),在窗口内切换 打开多个浏览器(Browser),在多个浏览器内切换 1. 切换窗口 该操作适用于:打开两(多)个窗口页面,在打开的 ...
- CSS选择器定位的使用
CSS 可以比较灵活选择控件的任意属性,一般情况下定位速度要比XPath 快,但对于初学者来说比较难以学习使用,下面我们就详细的介绍CSS 的语法与使用.一.CSS 选择器的常见语法: 例如下面一段代 ...
- .net异步编程async和await的讨论收获
微软官方描述: C# 5 引入了一种简便方法,即异步编程.此方法利用了 .NET Framework 4.5 及更高版本..NET Core 和 Windows 运行时中的异步支持. 编译器可执行开发 ...
- git学习(一)----基础知识
git是世界上最好用最先进的版本管理系统,那么什么是版本管理系统呢,百度上是这样说的: 举个例子,当你写毕业论文的时候,灵感爆发了修改或者删除了一些内容,但是你还想保留之前的版本,就需要另存为不同的w ...
- Washing Clothes(poj 3211)
大体题意:有n件衣服,m种颜色,某人和他的女炮一起洗衣服,必须一种颜色洗完,才能洗另一种颜色,每件衣服都有时间,那个人洗都一样,问最少用时. poj万恶的C++和G++,害得我CE了三次 /* 背包啊 ...
- 【永久激活,视频教程,超级详细】IntelliJ idea 2018.3安装+激活+汉化
简介 IDEA 全称IntelliJ IDEA,是用于java语言开发的集成环境(也可用于其他语言),IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构. ...
- freeswitch电话代接
Misc. Dialplan Tools intercept Description Allows one channel to bridge itself to the a or b leg of ...