zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    GSS3 SPOJ 1716. Can you answer these queries III gss1的变形
    GSS1 spoj 1043 Can you answer these queries I 最大子段和
    Codeforces Round #197 (Div. 2) C,D两题
    sgu 185 最短路建网络流
    CF 208E
    QTREE2 spoj 913. Query on a tree II 经典的倍增思想
    BZOJ 1146: [CTSC2008]网络管理Network 树链剖分+线段树+平衡树
    ubuntu安装vim
    历史背景更新模型
    码本模型
  • 原文地址:https://www.cnblogs.com/keximeiruguo/p/7799679.html
Copyright © 2011-2022 走看看