社区讨论
入门赛H题求救
学术版参与者 6已保存回复 15
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 15 条
- 当前快照
- 1 份
- 快照标识符
- @mhk7ahlw
- 此快照首次捕获于
- 2025/11/04 14:41 4 个月前
- 此快照最后确认于
- 2025/11/04 23:33 4 个月前
#1#2#3AC,其余WA,代码如下:
CPP#include <bits/stdc++.h>
using namespace std;
int n, m;
char c[1010][1010];
int main () {
cin >> n >> m;
for (int i = 0; i < n; i ++) {
string s, ss;
cin >> s;
for (int j = 0; j < s.size (); j ++)
ss += '#';
bool flag = 0;
int a = 0, b = 0, h;
for (int j = 0; j < s.size (); j ++)
if (s[j] == 'H') flag = 1, h = j;
for (int j = 0; j < s.size (); j ++) {
if (s[j] == 'A') a ++;
else if (s[j] == 'B') b ++;
}
if (! flag) {
if (a > b) {
for (int j = ss.size () - 1; j > s.size () - 1 - a; j --) ss[j] = 'A';
} else if (b > a) {
for (int j = 0; j < b; j ++) ss[j] = 'B';
}
} else {
ss[h] = 'H';
for (int j = 0; j < a; j ++) ss[j] = 'A';
for (int j = ss.size () - 1; j > ss.size () - 1 - b; j --) ss[j] = 'B';
}
for (int j = 0; j < m; j ++)
c[i][j] = ss[j];
//cout << ss << '\n';
}
for (int i = 0; i < n; i ++) {
for (int j = 0; j < m; j ++) {
if (c[i][j] == 'A') {
if (c[i + 1][j] == 'A')
c[i][j] = '#', c[i + 1][j] = '#';
else if (c[i - 1][j] == 'A')
c[i][j] = '#', c[i - 1][j] = '#';
} else if (c[i][j] == 'B') {
if (c[i + 1][j] == 'B')
c[i][j] = '#', c[i + 1][j] = 'B';
else if (c[i - 1][j] == 'B')
c[i][j] = '#', c[i - 1][j] = 'B';
}
}
}
for (int i = 0; i < n; i ++) {
for (int j = 0; j < m; j ++)
cout << c[i][j];
puts ("");
}
}
回复
共 15 条回复,欢迎继续交流。
正在加载回复...