• BZOJ-2462: [BeiJing2011]矩阵模板 (宇宙无敌超级大暴力~)


    2462: [BeiJing2011]矩阵模板

    Time Limit: 2 Sec  Memory Limit: 128 MB
    Submit: 1278  Solved: 607
    [Submit][Status][Discuss]

    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%的数据,N,M<=1000 A,B<=100

    Source

     
    正解是矩阵hash,laj不会写于是就大暴力水过咯~
     1 #include "bits/stdc++.h"
     2 using namespace std;
     3 typedef long long LL;
     4 const int MAX=1005;
     5 int n,m,q,a,b;
     6 int aa[MAX][MAX],bb[MAX][MAX];
     7 int main(){
     8     freopen ("matrix.in","r",stdin);freopen ("matrix.out","w",stdout);
     9     int i,j,k,x;char s[MAX];
    10     scanf("%d%d%d%d
    ",&n,&m,&a,&b);
    11     for (i=1;i<=n;i++){
    12         gets(s+1);
    13         for (j=1;j<=m;j++) aa[i][j]=s[j]-'0';
    14     }
    15     scanf("%d
    ",&q);
    16     while (q--){
    17         for (i=1;i<=a;i++){
    18             gets(s+1);
    19             for (j=1;j<=b;j++) bb[i][j]=s[j]-'0';
    20         }
    21         bool flag;
    22         for (i=1;i<=n-a+1;i++)
    23             for (j=1;j<=m-b+1;j++){
    24                 flag=true;
    25                 for (k=i;k<=i+a-1;k++)
    26                     for (x=j;x<=j+b-1;x++)
    27                         if (aa[k][x]!=bb[k-i+1][x-j+1]) {flag=false;goto away;}
    28                 away:if (flag) goto awa;
    29             }
    30         awa:if (flag) puts("1");
    31         else puts("0");
    32     }
    33     return 0;
    34 }
  • 相关阅读:
    PHP-xml-1
    BZOJ 1833 ZJOI2010 count 数字计数 数位DP
    运算符总结
    大写和小写转换
    Java基础:泛型
    Codeforces Round #156 (Div. 2)---A. Greg&#39;s Workout
    【Git】GitHub for Windows使用(2) 分支
    【Git】GitHub for Windows使用(1)
    【java JVM】JVM中类的加载,加载class文件的原理机制
    【FTP】org.apache.commons.net.ftp.FTPClient实现复杂的上传下载,操作目录,处理编码
  • 原文地址:https://www.cnblogs.com/keximeiruguo/p/7799679.html
Copyright © 2020-2023  润新知