社区讨论

关于这题我的做法

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 条回复,欢迎继续交流。

正在加载回复...