Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
124412 | 刘子涵 | 方块转换 | C++ | 通过 | 100 | 0 MS | 256 KB | 2769 | 2024-01-23 14:27:04 |
#include<bits/stdc++.h> using namespace std; bool v[27][27],c[27][27],s[27][27],d[27][27]; int a; bool vv(){ for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(s[i][j] != c[i][j]) return false; return true; } bool v6(){ for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(c[i][j] != v[i][j]) return false; return true; } bool r1(){ for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(v[i][j]) s[j][a-i+1] = true; if(vv()) return true; return false; } bool r2(){ for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(v[i][j]) s[a-i+1][a-j+1] = true; if(vv()) return true; return false; } bool r3(){ for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(v[i][j]) s[a-j+1][i] = true; if(vv()) return true; return false; } bool rv1(){ for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(v[i][j]) s[i][a-j+1] = true; for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) d[i][j] = s[i][j]; memset(s,0,sizeof(s)); for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(d[i][j]) s[j][a-i+1] = true; if(vv()) return true; return false; } bool rv2(){ for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(v[i][j]) s[i][a-j+1] = true; for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) d[i][j] = s[i][j]; memset(s,0,sizeof(s)); for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(d[i][j]) s[a-i+1][a-j+1] = true; if(vv()) return true; return false; } bool rv3(){ for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(v[i][j]) s[i][a-j+1] = true; for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) d[i][j] = s[i][j]; memset(s,0,sizeof(s)); for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(d[i][j]) s[a-j+1][i] = true; if(vv()) return true; return false; } bool r4(){ for(int i = 1;i <= a;i++) for(int j = 1;j <= a;j++) if(v[i][j]) s[i][a-j+1] = true; if(vv()) return true; return false; } bool r5(){ memset(d,0,sizeof(d)); if(rv1()) return true; memset(s,0,sizeof(s)); memset(d,0,sizeof(d)); if(rv2()) return true; memset(s,0,sizeof(s)); memset(d,0,sizeof(d)); if(rv3()) return true; return false; } int main(){ string k; cin>>a; for(int i = 1;i <= a;i++){ cin>>k; for(int j = 1;j <= a;j++) if(k[j-1] == '@') v[i][j] = true; } for(int i = 1;i <= a;i++){ cin>>k; for(int j = 1;j <= a;j++) if(k[j-1] == '@') c[i][j] = true; } if(r1()){ cout<<1; return 0; } memset(s,0,sizeof(s)); if(r2()){ cout<<2; return 0; } memset(s,0,sizeof(s)); if(r3()){ cout<<3; return 0; } memset(s,0,sizeof(s)); if(r4()){ cout<<4; return 0; } memset(s,0,sizeof(s)); if(r5()){ cout<<5; return 0; } memset(s,0,sizeof(s)); if(v6()){ cout<<6; return 0; } cout<<7; return 0; }