【题目链接】

https://www.lydsy.com/JudgeOnline/problem.php?id=2351

【算法】

哈希

【代码】

#include<bits/stdc++.h>
using namespace std;
#define MAXN 1010
typedef unsigned long long ull;
const int base1 = ;
const int base2 = ;
const int P = 1e5 + ; int i,j,m,n,a,b,q;
ull sum[MAXN][MAXN];
ull power1[MAXN],power2[MAXN];
ull t;
vector< ull > e[P];
char c;
char s[MAXN][MAXN]; inline void insert(ull x)
{
int h = (int)(x % P);
e[h].push_back(x);
}
inline bool query(ull x)
{
int i;
int h = (int)(x % P);
for (i = ; i < (int)e[h].size(); i++)
{
if (e[h][i] == x)
return true;
}
return false;
} int main()
{ scanf("%d%d%d%d",&m,&n,&a,&b);
for (i = ; i <= m; i++) scanf("%s",s[i]+);
for (i = ; i <= m; i++)
{
for (j = ; j <= n; j++)
{
sum[i][j] = s[i][j] - '';
}
}
for (i = ; i <= m; i++)
{
for (j = ; j <= n; j++)
{
sum[i][j] += sum[i-][j] * base1;
}
}
for (i = ; i <= m; i++)
{
for (j = ; j <= n; j++)
{
sum[i][j] += sum[i][j-] * base2;
}
}
power1[] = power2[] = ;
for (i = ; i < m; i++)
{
power1[i] = power1[i-] * base1;
power2[i] = power2[i-] * base2;
}
for (i = a; i <= m; i++)
{
for (j = b; j <= n; j++)
{
t = sum[i][j] - sum[i-a][j] * power1[a] - sum[i][j-b] * power2[b] + sum[i-a][j-b] * power1[a] * power2[b];
insert(t);
}
}
scanf("%d",&q);
while (q--)
{
for (i = ; i <= a; i++) scanf("%s",s[i]+);
for (i = ; i <= a; i++)
{
for (j = ; j <= b; j++)
{
sum[i][j] = s[i][j] - '';
}
}
for (i = ; i <= a; i++)
{
for (j = ; j <= b; j++)
{
sum[i][j] += sum[i-][j] * base1;
}
}
for (i = ; i <= a; i++)
{
for (j = ; j <= b; j++)
{
sum[i][j] += sum[i][j-] * base2;
}
}
if (query(sum[a][b])) printf("1\n");
else printf("0\n");
} return ; }

【BZOJ 2351】 Matrix的更多相关文章

  1. 【BZOJ 2351】Matrix(Hash)

    题目链接 二维\(Hash\)类似二维前缀和,每一行看成一个\(h\)进制数,每一个以(1,1)为左上角的矩阵看成一个由每一行的\(Hash\)值组成的\(l\)进制数. 然后自己推推柿子就行. #i ...

  2. 【BZOJ 1150】 1150: [CTSC2007]数据备份Backup (贪心+优先队列+双向链表)

    1150: [CTSC2007]数据备份Backup Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味 的,因此你想设 ...

  3. Kruskal算法及其类似原理的应用——【BZOJ 3654】tree&&【BZOJ 3624】[Apio2008]免费道路

    首先让我们来介绍Krukal算法,他是一种用来求解最小生成树问题的算法,首先把边按边权排序,然后贪心得从最小开始往大里取,只要那个边的两端点暂时还没有在一个联通块里,我们就把他相连,只要这个图里存在最 ...

  4. 【BZOJ 2957】楼房重建&&Codechef COT5 Count on a Treap&&【NOIP模拟赛】Weed 线段树的分治维护

    线段树是一种作用于静态区间上的数据结构,可以高效查询连续区间和单点,类似于一种静态的分治.他最迷人的地方在于“lazy标记”,对于lazy标记一般随我们从父区间进入子区间而下传,最终给到叶子节点,但还 ...

  5. LCA 【bzoj 4281】 [ONTAK2015]Związek Harcerstwa Bajtockiego

    [bzoj 4281] [ONTAK2015]Związek Harcerstwa Bajtockiego Description 给定一棵有n个点的无根树,相邻的点之间的距离为1,一开始你位于m点. ...

  6. 【BZOJ 1191】 [Apio2010]特别行动队 (斜率优化)

    dsy1911: [Apio2010]特别行动队 [题目描述] 有n个数,分成连续的若干段,每段的分数为a*x^2+b*x+c(a,b,c是给出的常数),其中x为该段的各个数的和.求如何分才能使得各个 ...

  7. 【BZOJ 1096】 [ZJOI2007]仓库建设 (斜率优化)

    1096: [ZJOI2007]仓库建设 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3940  Solved: 1736 Description ...

  8. 【NOIP模拟】matrix(简化矩阵)

    题目背景 SOURCE:NOIP2016-RZZ-1 题目描述 给出两个 N×N 的矩阵 A.B,矩阵每行每列标号 0-N-1 .定义这两个矩阵的乘积 AB 为

  9. 【BZOJ 2132】圈地计划 && 【7.22Test】计划

    两种版本的题面 Description 最近房地产商GDOI(Group of Dumbbells Or Idiots)从NOI(Nuts Old Idiots)手中得到了一块开发土地.据了解,这块土 ...

随机推荐

  1. Deutsch lernen (05)

    1. die Wahrheit, -en 真理:  - 真言,实情 Wir sollen die Wahrheit festhalten. 坚持:紧握 Im Wein liegt Wahrheit. ...

  2. 【Bootstrap】如何让响应式图片(img-responsive)水平居中

    我们在用bootstrap排版内容的时候,有的时候在内容中需要图片水平居中对齐. 一般情况下,我们的图片都使用了 .img-responsive 类来实现响应式图片.如果需要实现响应式图片水平居中,那 ...

  3. 如何将一个已有的项目托管到github或是码云上?git的配置

    场景一:已有的一个项目,要把它托管到Git上去,步骤和方法如下: 方法一: ①在工程的路径下 : git init 建一个裸仓库. ②远程仓库地址 :将本地的仓库和远程仓库关联 git remote ...

  4. 复习MySQL③导入数据、检查及修改

    导入数据: 用insert into语句为表插入数据: - insert into 表名(字段1,字段2,…) values …… 导入外部文本文件: - 导入外部txt文件(导入CSV文件分隔符为' ...

  5. NOIP2012 DAY2 T2借教室

    题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...

  6. cent OS官网上下载老版本系统镜像的正确打开方式

    当时的情况是这样的: 客户需要给服务器安装cent OS 7.3操作系统,我打开官网https://www.centos.org/,点击“GET CENTOS”——>“Minimal ISO”, ...

  7. 爬虫系列(四) 用urllib实现英语翻译

    这篇文章我们将以 百度翻译 为例,分析网络请求的过程,然后使用 urllib 编写一个英语翻译的小模块 1.准备工作 首先使用 Chrome 浏览器打开 百度翻译,这里,我们选择 Chrome 浏览器 ...

  8. lucene_05_solr配置

    什么是solr Solr.是Apache 下的一个顶级开源项目,采用Java 开发,它是基于Lucene 的全文搜索服务器.Solr 提供了比Lucene 更为丰富的查询语言,同时实现了可配置.可扩展 ...

  9. Git学习总结(12)——多人开发 Git 分支管理详解

    1.前言 在上一篇博客中我们主要讲解了Git 远程仓库,相信大家对远程的Git仓库有一定的了解,嘿嘿.在这一篇博客中我们来在大家讲解一下Git 分支管理,这可以说是Git的又一大特点.下面我们就来学习 ...

  10. (19)Spring Boot 添加JSP支持【从零开始学Spring Boot】

    [来也匆匆,去也匆匆,在此留下您的脚印吧,转发点赞评论: 您的认可是我最大的动力,感谢您的支持] 看完本文章您可能会有些疑问,可以查看之后的一篇博客: 81. Spring Boot集成JSP疑问[从 ...