hihocoder-1094-Lost in the City
Posted 0_summer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hihocoder-1094-Lost in the City相关的知识,希望对你有一定的参考价值。
n*m的矩阵,再输入一个3*3的矩阵,找出在大的矩阵中这个3*3的矩阵的位置(3*3的矩阵可旋转),当有多个答案是,从上到下,从左到右的顺序输出
(3 <= N, M <= 200).
分析:数据范围不大,直接暴力,在n*m的矩阵中枚举3*3矩阵的右上点,然后比较这个3*3是否和输入的3*3的矩阵旋转后相同
1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 #include<vector> 5 #include<string> 6 using namespace std; 7 8 int n,m; 9 char a[300][300]; 10 char b[10][10]; 11 12 void rat() 13 { 14 char tmp[10]; 15 tmp[0]=b[0][0]; 16 tmp[1]=b[1][0]; 17 tmp[2]=b[2][0]; 18 b[0][0]=b[2][0]; 19 b[1][0]=b[2][1]; 20 b[2][0]=b[2][2]; 21 b[2][1]=b[1][2]; 22 b[2][2]=b[0][2]; 23 b[1][2]=b[0][1]; 24 b[0][2]=tmp[0]; 25 b[0][1]=tmp[1]; 26 b[0][0]=tmp[2]; 27 } 28 29 bool chk(int i,int j) 30 { 31 for(int u=0;u<3;u++){ 32 for(int v=0;v<3;v++){ 33 if(i+u>n-1||j+v>m-1||a[i+u][j+v]!=b[u][v]) return false; 34 } 35 } 36 return true; 37 } 38 39 void func() 40 { 41 for(int i=0;i<n;i++){ 42 for(int j=0;j<m;j++){ 43 for(int k=0;k<4;k++){ 44 rat(); 45 if(chk(i,j)){ 46 cout<<i+2<<" "<<j+2<<endl; 47 break; 48 } 49 } 50 } 51 } 52 } 53 54 int main() 55 { 56 while(cin>>n>>m){ 57 for(int i=0;i<n;i++) cin>>a[i]; 58 for(int i=0;i<3;i++) cin>>b[i]; 59 func(); 60 } 61 }
以上是关于hihocoder-1094-Lost in the City的主要内容,如果未能解决你的问题,请参考以下文章