第一个AC
2025-08-11 16:16:26
发布于:北京
3阅读
0回复
0点赞
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
int R, C;
cin >> R >> C;
// 读取左上角四分之一区域
vector<string> top_left(R);
for (int i = 0; i < R; ++i) {
cin >> top_left[i];
}
// 生成上半部分(左上角 + 水平镜像的右上角)
vector<string> upper(R, string(2 * C, ' '));
for (int i = 0; i < R; ++i) {
// 左上角部分
for (int j = 0; j < C; ++j) {
upper[i][j] = top_left[i][j];
}
// 右上角部分(水平镜像)
for (int j = 0; j < C; ++j) {
upper[i][2 * C - 1 - j] = top_left[i][j];
}
}
// 生成完整卡片(上半部分 + 垂直镜像的下半部分)
vector<string> card(2 * R, string(2 * C, ' '));
// 上半部分
for (int i = 0; i < R; ++i) {
for (int j = 0; j < 2 * C; ++j) {
card[i][j] = upper[i][j];
}
}
// 下半部分(垂直镜像)
for (int i = 0; i < R; ++i) {
for (int j = 0; j < 2 * C; ++j) {
card[2 * R - 1 - i][j] = upper[i][j];
}
}
// 读取错误位置并调整为0-based索引
int A, B;
cin >> A >> B;
A--; // 行索引转换
B--; // 列索引转换
// 翻转错误位置的字符
card[A][B] = (card[A][B] == '#' ? '.' : '#');
// 输出结果
for (const string& row : card) {
cout << row << endl;
}
return 0;
}
第一个AC
这里空空如也
有帮助,赞一个