社区讨论
关于这题我的做法
P7338『MdOI R4』Color参与者 2已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @locmwewq
- 此快照首次捕获于
- 2023/10/30 16:24 2 年前
- 此快照最后确认于
- 2023/11/05 03:29 2 年前
这题我用一种貌似很对的乱搞做法A了,求hack
CPP#include <cstdio>
#include <set>
using namespace std;
int t, n;
int dx[] = {0, 1, -1, 0}, dy[] = {-1, 0, 0, 1};
char p[3][100100];
struct node {
int a, b;
bool operator < (const node &c) const {
if (a == c.a) {
return b < c.b;
}
return a < c.a;
}
};
set<node> st;
int main() {
scanf("%d", &t);
for (int i = 0; i < t; ++i) {
st.clear();
scanf("%d", &n);
scanf("%s%s", p[0], p[1]);
for (int y = 0; y < n; ++y) {
for (int x = 0; x < 2; ++x) {
if (p[x][y] == '0') {
continue;
}
for (int k = 0; k < 4; ++k) {
int nx = x + dx[k], ny = y + dy[k];
if (nx < 0 || nx > 1 || ny < 0 || ny >= n) {
continue;
}
if (p[nx][ny] == '0') {
if (st.count({nx, ny})) {
continue;
}
st.insert({nx, ny});
goto Next;
}
}
puts("++");
goto NEXT;
Next: ;
}
}
puts("RP");
NEXT: ;
}
return 0;
}
回复
共 8 条回复,欢迎继续交流。
正在加载回复...