社区讨论

求助,本地正常运行的代码提交后编译失败

P1205[USACO1.2] 方块转换 Transformations参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lqvtaa8y
此快照首次捕获于
2024/01/02 11:50
2 年前
此快照最后确认于
2024/01/02 17:30
2 年前
查看原帖
我使用Visual Studio编写了下面的代码,在本地运行没有问题,但是提交答案后显示编译失败,也没有给出错误原因,大佬们帮忙看下问题出在哪里
CPP
#include <iostream>
#include <string>
#include <vector>

using namespace std;

// 定义一个函数,将正方形顺时针旋转90度
vector<string> rotate90(vector<string>& square) 
{
    int n = square.size();
    vector<string> rotated(n, string(n, ' '));
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            rotated[j][n - i - 1] = square[i][j];
        }
    }
    return rotated;
}

// 定义一个函数,将正方形进行水平翻转
vector<string> reflect(vector<string>& square) 
{
    int n = square.size();
    for (int i = 0; i < n; ++i) {
        reverse(square[i].begin(), square[i].end());
    }
    return square;
}

// 定义一个函数,检查所有可能的转换,返回最小的有效转换序号
int check_transformations(vector<string>& original, vector<string>& transformed) 
{
    if (original == transformed) return 6;

    vector<string> rotated90 = rotate90(original);
    if (rotated90 == transformed) return 1;

    vector<string> rotated180 = rotate90(rotated90);
    if (rotated180 == transformed) return 2;

    vector<string> rotated270 = rotate90(rotated180);
    if (rotated270 == transformed) return 3;

    vector<string> reflected = reflect(original);
    if (reflected == transformed) return 4;

    vector<string> reflected_rotated90 = rotate90(reflected);
    vector<string> reflected_rotated180 = rotate90(reflected_rotated90);
    vector<string> reflected_rotated270 = rotate90(reflected_rotated180);
    if (reflected_rotated90 == transformed || reflected_rotated180 == transformed || reflected_rotated270 == transformed) return 5;
    return 7;
}

int main() 
{
    int n;
    cin >> n;
    vector<string> original(n), transformed(n);
    for (int i = 0; i < n; ++i)
    {
        cin >> original[i];
    }
    for (int i = 0; i < n; ++i)
    {
        cin >> transformed[i];
    }
    int res = check_transformations(original, transformed);
    cout << res << endl;
    return 0;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...