社区讨论
求助,本地正常运行的代码提交后编译失败
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 条回复,欢迎继续交流。
正在加载回复...