【BeiJing2011】【BZOJ2462】矩阵模板
来源:互联网 发布:翻页相册制作软件 编辑:程序博客网 时间:2024/05/02 05:02
Description
给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在
原矩阵中出现过。
所谓01矩阵,就是矩阵中所有元素不是0就是1。
Input
输入文件的第一行为M、N、A、B,参见题目描述。
接下来M行,每行N个字符,非0即1,描述原矩阵。
接下来一行为你要处理的询问数Q。
接下来Q个矩阵,一共Q*A行,每行B个字符,描述Q个01矩阵。
Output
你需要输出Q行,每行为0或者1,表示这个矩阵是否出现过,0表示没有出现过,1表
示出现过。
Sample Input
3 3 2 2
111
000
111
3
11
00
11
11
00
11
Sample Output
1
0
1
HINT
对于100%的数据,A < = 100。
Source
Day4
随便写个2维HASH就可以了
这题全输出1就能过…这就是为什么rank靠前30B AC
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define UI unsigned int#define MAXN 1010#define P 99999971#define base1 9804799#define base2 9983543using namespace std;int n,m,A,B,Q;UI a[MAXN][MAXN],b[MAXN][MAXN],pow1[MAXN],pow2[MAXN],HASH;bool hash[100000000];int main(){ scanf("%d%d%d%d",&m,&n,&A,&B);pow1[0]=pow2[0]=1; for (int i=1;i<=m;i++) for (int j=1;j<=n;j++) scanf("%1d",&a[i][j]); for (int i=1;i<=max(n,m);i++) pow1[i]=pow1[i-1]*base1,pow2[i]=pow2[i-1]*base2; for (int i=1;i<=m;i++) for (int j=1;j<=n;j++) a[i][j]+=a[i-1][j]*base1; for (int i=1;i<=m;i++) for (int j=1;j<=n;j++) a[i][j]+=a[i][j-1]*base2; for (int i=A;i<=m;i++) for (int j=B;j<=n;j++) { HASH=a[i][j];HASH-=a[i-A][j]*pow1[A];HASH-=a[i][j-B]*pow2[B];HASH+=a[i-A][j-B]*pow1[A]*pow2[B]; HASH%=P;hash[HASH]=1; } scanf("%d",&Q); while (Q--) { for (int i=1;i<=A;i++) for (int j=1;j<=B;j++) scanf("%1d",&b[i][j]); for (int i=1;i<=A;i++) for (int j=1;j<=B;j++) b[i][j]+=b[i-1][j]*base1; for (int i=1;i<=A;i++) for (int j=1;j<=B;j++) b[i][j]+=b[i][j-1]*base2; bool flag=hash[b[A][B]%P]; puts(flag?"1":"0"); }}
0 0
- 【BeiJing2011】【BZOJ2462】矩阵模板
- BZOJ2462矩阵模板
- [BZOJ2462]矩阵模板(暴力||矩阵hash)
- 2462: [BeiJing2011]矩阵模板
- 2462: [BeiJing2011]矩阵模板
- 2462: [BeiJing2011]矩阵模板
- bzoj 2462 [BeiJing2011]矩阵模板
- BZOJ 2462: [BeiJing2011]矩阵模板
- BZOJ 2462: [BeiJing2011]矩阵模板
- [BZOJ 2462 BeiJing2011矩阵模板]矩阵Hash
- bzoj 2462 [BeiJing2011]矩阵模板 (hash)
- [BZOJ]2462: [BeiJing2011]矩阵模板 二维hash
- BZOJ 2462/2351 [BeiJing2011]矩阵模板/[BeiJing2011]Matrix 二维哈希
- BZOJ 2462: [BeiJing2011]矩阵模板 二维哈希
- 线性基 模板 bzoj2460 【BeiJing2011】 元素
- bzoj2462(矩阵二维hash)……不会的题就hash
- BZOJ 2553 BeiJing2011 禁忌 AC自动机+矩阵乘法
- 【BZOJ2553】【BeiJing2011】禁忌 AC自动机 矩阵乘法 动态规划
- 异常空格,ASCII (194,160)问题
- Android开发笔记
- 数组最长递增子序列
- Git添加文件改动时出错
- 个人Android学习前言
- 【BeiJing2011】【BZOJ2462】矩阵模板
- web前端学习笔记02
- XCODE6 提交至 App Store
- 初识Mybatis-Spring
- OpenGL顶点数组
- 程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大系列集锦
- 路书
- MyEclipse8.5配置整合SSH框架 简单登录验证功能
- Yii2的urlmanager开启