42分求助
查看原帖
42分求助
450498
miaozheyuan楼主2023/12/26 16:56
#include<bits/stdc++.h>
using namespace std;

int n;
char a[15][15], b[15][15], c[15][15], d[15][15];
bool p() {
	for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) if(a[i][j] != c[i][j]) return false;
	return true;
}
void k() {
	for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) a[i][j] = d[i][j];
}
void k2() {
	for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) a[i][j] = b[i][j];
}
bool w1() {
	for (int i = 1; i <= n; ++i) {
		for (int j = 1; j <= n; ++j) {
			b[j][n - i + 1] = a[i][j];
		}
	}
	k2();
	bool l = p();
	k();
	return l;
}
bool w2() {
	for (int i = 1; i <= 2; ++i) {
		w1();
		k2();
	}
	bool l = p();
	k();
	return l;
}
bool w3() {
	for (int i = 1; i <= 3; ++i) {
		w1();
		k2();
	}
	bool l = p();
	k();
	return l;
}
bool w4() {
	for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++i) b[i][n - j + 1] = a[i][j];
	k2();
	bool l = p();
	k();
	return l;
}
bool w5() {
	w4();
	k();
	bool l = w1();
	k();
	bool l1 = w2();
	k();
	bool l2 = w3();
	k();
	return l || l1 || l2;
}

int main(){
	cin >> n;
	for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) cin >> d[i][j];
	for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) cin >> c[i][j];
	k();
	if(w1()) cout << 1;
	else if(w2()) cout << 2;
	else if(w3()) cout << 3;
	else if(w4()) cout << 4;
	else if(w5()) cout << 5;
	else if(p()) cout << 6;
	else cout << 7;
	return 0; 
}
2023/12/26 16:56
加载中...