1 条题解
-
0
#include <bits/stdc++.h> using namespace std; vector<vector<char> > rotate90r(vector<vector<char> > ma,int n){ int dst; dst = n - 1; vector<vector<char> > a2 = ma; for (int x = 0; x < n; x++, dst--) { for (int y = 0; y < n; y++) { a2[y][dst] = ma[x][y]; } } return a2; } vector<vector<char> > reflectMa(vector<vector<char> > ma,int n){ vector<vector<char> > a2(n,vector<char>(n));; for(int i = 0;i<n;i++){ for(int j = 0;j<n;j++){ a2[i][j]=ma[i][n-j-1]; } } return a2; } bool compare(vector<vector<char> > x,vector<vector<char> > y,int n){ 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; } bool check5(vector<vector<char> > x,vector<vector<char> > y,int n){ //1 vector<vector<char> > v1 = x; v1 = rotate90r(x,n); if(compare(v1,y,n)){ return true; } //2 v1 = rotate90r(v1,n); if(compare(v1,y,n)){ return true; } //3 v1 = rotate90r(v1,n); if(compare(v1,y,n)){ return true; } } int operation(vector<vector<char> > x,vector<vector<char> > y,int n){ //1 vector<vector<char> > v1 = x; v1 = rotate90r(x,n); if(compare(v1,y,n)){ return 1; } //2 v1 = rotate90r(v1,n); if(compare(v1,y,n)){ return 2; } //3 v1 = rotate90r(v1,n); if(compare(v1,y,n)){ return 3; } //4 vector<vector<char> > v2 = x; v2 = reflectMa(v2,n); if(compare(v2,y,n)){ return 4; } //5 if(check5(v2,y,n)){ return 5; } //6 if(compare(x,y,n)){ return 6; } return 7; } int main(){ int n; cin>>n; vector<vector<char> > curMa(n,vector<char>(n)); vector<vector<char> > fnMa(n,vector<char>(n)); for(int i = 0;i<n;i++){ for(int j = 0;j<n;j++){ cin>>curMa[i][j]; } } for(int i = 0;i<n;i++){ for(int j = 0;j<n;j++){ cin>>fnMa[i][j]; } } int ann = operation(curMa,fnMa,n); if(ann == 5&&curMa[0][0]=='-'&&curMa[0][1]=='-'){ ann = 7; } cout<<ann; }
信息
- ID
- 198
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 31
- 已通过
- 7
- 上传者