#5错了
查看原帖
#5错了
1643406
shenliyan楼主2025/1/23 19:10
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void rotate90(vector<string>& matrix) {
    int n = matrix.size();
    vector<string> rotated(n, string(n, ' '));
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            rotated[j][n - 1 - i] = matrix[i][j];
        }
    }
    matrix = rotated;
}
void rotate180(vector<string>& matrix) {
    rotate90(matrix);
    rotate90(matrix);
}
void rotate270(vector<string>& matrix) {
    rotate180(matrix);
    rotate90(matrix);
}

void reflect(vector<string>& matrix) {
    int n = matrix.size();
    for (int i = 0; i < n; ++i) {
        reverse(matrix[i].begin(), matrix[i].end());
    }
}
bool areEqual(const vector<string>& matrix1, const vector<string>& matrix2) {
    return matrix1 == matrix2;
}
int main() {
    int n;
    cin >> n;
    vector<string> original(n), target(n);
    for (int i = 0; i < n; ++i) {
        cin >> original[i];
    }
    for (int i = 0; i < n; ++i) {
        cin >> target[i];
    }
    if (areEqual(original, target)) {
        cout << 6 << endl;
    } else {
        rotate90(original);
        if (areEqual(original, target)) {
            cout << 1 << endl;
        } else {
            rotate90(original);
            if (areEqual(original, target)) {
                cout << 2 << endl;
            } else {
                rotate90(original);
                if (areEqual(original, target)) {
                    cout << 3 << endl;
                } else {
                    rotate90(original);
                    reflect(original);
                    if (areEqual(original, target)) {
                        cout << 4 << endl;
                    } else {
                        rotate90(original);
                        if (areEqual(original, target)) {
                            cout << 5 << endl;
                        } else {
                            rotate180(original);
                            if (areEqual(original, target)) {
                                cout << 5 << endl;
                            } else {
                                rotate270(original);
                                if (areEqual(original, target)) {
                                    cout << 5 << endl;
                                } else {
                                    cout << 7 << endl;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;
}

2025/1/23 19:10
加载中...