小模拟 没什么好说的
/* ID: Jang Lawrence PROG: transform LANG: C++ */ #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int n; bool is(char x[11][11],char y[11][11]) { for(int i=0;i<n;++i) for(int j=0;j<n;++j) if(x[i][j]!=y[i][j]) return false; return true; } char goal[11][11]; char turn[8][11][11]; int main() { freopen("transform.in","r",stdin); freopen("transform.out","w",stdout); scanf("%d",&n); for(int i=0;i<n;++i) { getchar(); for(int j=0;j<n;++j) turn[0][i][j]=getchar(); } for(int i=0;i<n;++i) { getchar(); for(int j=0;j<n;++j) goal[i][j]=getchar(); } for(int id=1;id<=3;++id) { for(int i=0;i<n;++i) for(int j=0;j<n;++j) turn[id][j][n-1-i]=turn[id-1][i][j]; } for(int i=0;i<n;++i) for(int j=0;j<n;++j) turn[4][i][n-1-j]=turn[0][i][j]; for(int id=5;id<=7;++id) { for(int i=0;i<n;++i) for(int j=0;j<n;++j) turn[id][j][n-1-i]=turn[id-1][i][j]; } int ans=7; for(int i=1;i<=4;++i) if(is(turn[i],goal)) { if(ans>i) ans=i; } for(int i=5;i<=7;++i) if(is(turn[i],goal)) { if(ans>5) ans=5; } if(is(turn[0],goal)) { if(ans>6) ans=6; } printf("%d\n",ans); return 0; }