思路:
暴力题,注意每个字符的书写,慢慢细心模拟。我竟然忘了写初始化,还好1A了。。。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define max_n 100010
using namespace std;
typedef long long LL;
char str[12][10][23],mapp[10][25],arr[10][25];
int p;
void init(){ //枚举
strcpy(str[0][0],".XX.");
strcpy(str[0][1],"X..X");
strcpy(str[0][2],"X..X");
strcpy(str[0][3],"....");
strcpy(str[0][4],"X..X");
strcpy(str[0][5],"X..X");
strcpy(str[0][6],".XX.");
strcpy(str[1][0],"....");
strcpy(str[1][1],"...X");
strcpy(str[1][2],"...X");
strcpy(str[1][3],"....");
strcpy(str[1][4],"...X");
strcpy(str[1][5],"...X");
strcpy(str[1][6],"....");
strcpy(str[2][0],".XX.");
strcpy(str[2][1],"...X");
strcpy(str[2][2],"...X");
strcpy(str[2][3],".XX.");
strcpy(str[2][4],"X...");
strcpy(str[2][5],"X...");
strcpy(str[2][6],".XX.");
strcpy(str[3][0],".XX.");
strcpy(str[3][1],"...X");
strcpy(str[3][2],"...X");
strcpy(str[3][3],".XX.");
strcpy(str[3][4],"...X");
strcpy(str[3][5],"...X");
strcpy(str[3][6],".XX.");
strcpy(str[4][0],"....");
strcpy(str[4][1],"X..X");
strcpy(str[4][2],"X..X");
strcpy(str[4][3],".XX.");
strcpy(str[4][4],"...X");
strcpy(str[4][5],"...X");
strcpy(str[4][6],"....");
strcpy(str[5][0],".XX.");
strcpy(str[5][1],"X...");
strcpy(str[5][2],"X...");
strcpy(str[5][3],".XX.");
strcpy(str[5][4],"...X");
strcpy(str[5][5],"...X");
strcpy(str[5][6],".XX.");
strcpy(str[6][0],".XX.");
strcpy(str[6][1],"X...");
strcpy(str[6][2],"X...");
strcpy(str[6][3],".XX.");
strcpy(str[6][4],"X..X");
strcpy(str[6][5],"X..X");
strcpy(str[6][6],".XX.");
strcpy(str[7][0],".XX.");
strcpy(str[7][1],"...X");
strcpy(str[7][2],"...X");
strcpy(str[7][3],"....");
strcpy(str[7][4],"...X");
strcpy(str[7][5],"...X");
strcpy(str[7][6],"....");
strcpy(str[8][0],".XX.");
strcpy(str[8][1],"X..X");
strcpy(str[8][2],"X..X");
strcpy(str[8][3],".XX.");
strcpy(str[8][4],"X..X");
strcpy(str[8][5],"X..X");
strcpy(str[8][6],".XX.");
}
int judge(){
for(int i=0;i<9;i++){
bool flag=true;
for(int j=0;j<7;j++){
if(strcmp(str[i][j],arr[j])){
flag=false;
break;
}
}
if(flag){
return i;
}
}
return 9;
}
int main(){
init(); //别忘记初始化
int t;
scanf("%d",&t);
while(t--){
int p1,p2,p3,p4;
for(int i=0;i<7;i++){
getchar();
for(int j=0;j<21;j++){
scanf("%c",&mapp[i][j]);
}
}
for(int i=0;i<7;i++){
for(int j=0;j<4;j++){
arr[i][j]=mapp[i][j];
}
}
p1=judge();
for(int i=0;i<7;i++){
for(int j=0;j<4;j++){
arr[i][j]=mapp[i][j+5];
}
}
p2=judge();
for(int i=0;i<7;i++){
for(int j=0;j<4;j++){
arr[i][j]=mapp[i][j+12];
}
}
p3=judge();
for(int i=0;i<7;i++){
for(int j=0;j<4;j++){
arr[i][j]=mapp[i][j+17];
}
}
p4=judge();
printf("%d%d:%d%d\n",p1,p2,p3,p4);
}
return 0;
}