比赛 csp2025模拟练习1 评测结果 AAAAAAWWWAAAAAAAAAAAAAAAAAAAAWAAAAAAAAWWWWWWWWWWWA
题目名称 彩色道路 最终得分 70
用户昵称 健康铀 运行时间 4.474 s
代码语言 C++ 内存使用 16.51 MiB
提交时间 2025-10-28 11:18:00
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

const int N = 200005;
int n, m;
vector<pair<int, int>> a[N];
bool v[N];
int c[N];

void dfs(int u, int d) {
    v[u] = 1;
    for (auto& p : a[u]) {
        int w = p.first, e = p.second;
        if (!v[w]) {
            c[e] = d % 2;
            dfs(w, d + 1);
        }
    }
}

int main() {
    freopen("paintoads.in", "r", stdin);
    freopen("paintoads.out", "w", stdout);
    scanf("%d%d", &n, &m);
    for (int i = 0; i < m; ++i) {
        int u, w;
        scanf("%d%d", &u, &w);
        a[u].emplace_back(w, i);
        a[w].emplace_back(u, i);
        c[i] = -1;
    }
    for (int i = 1; i <= n; ++i)
        if (!v[i])
            dfs(i, 0);
    for (int i = 0; i < m; ++i)
        if (c[i] == -1)
            putchar('G');
        else
            putchar(c[i] ? 'B' : 'R');
    putchar('\n');
    return 0;
}