QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#388347#8544. Colorful Graph 2ucup-team1055#WA 500ms3864kbC++202.4kb2024-04-13 14:54:082024-04-13 14:54:09

Judging History

你现在查看的是最新测评结果

  • [2024-04-13 14:54:09]
  • 评测
  • 测评结果:WA
  • 用时:500ms
  • 内存:3864kb
  • [2024-04-13 14:54:08]
  • 提交

answer

#include <bits/stdc++.h>

#define rep(i,s,n) for(int i = int(s); i < int(n); i++)
#define rrep(i,s,n) for(int i = int(n) - 1; i >= int(s); i--)
#define all(v) (v).begin(),(v).end()

using ll = long long;
using ld = long double;
using ull = unsigned long long;

bool chmin(auto &a, auto b) {
    if(a <= b) return false;
    a = b;
    return true;
}

bool chmax(auto &a, auto b) {
    if(a >= b) return false;
    a = b;
    return true;
}

using namespace std;

const int iinf = 1e9;

template<typename T>
ostream &operator<<(ostream &os, const vector<T> &a){
    const char* delim = "";
    for (auto &x : a){
        os << exchange(delim," ") << x;
    }
    return os;
}

void solve(){
    int n, m; cin >> n >> m;
    vector<set<int>> g(n);
    rep(i,0,m){
        int u, v; cin >> u >> v;
        g[u].insert(v);
        g[v].insert(u);
    }
    auto deg = [&](int v){
        return g[v].size();
    };
    vector<int> ans(n,0);
    auto dfs = [&](auto sfs, set<int> del) -> void {
        set<int> deg2;
        vector<int> ops;
        for (int v : del){
            // deg(v) == 2
            int op = -1;
            for (int u : g[v]){
                if (del.contains(u)) continue;
                g[u].erase(v);
                if (deg(u) == 2){
                    deg2.insert(u);
                }
                op = u;
            }
            ops.emplace_back(op);
        }
        if (deg2.empty()){
            // degl.size() >= 2
            int x = 0;
            for (int v : del){
                ans[v] = x;
                x ^= 1;
            }
            return ;
        }
        sfs(sfs,deg2);
        for (int i = 0; int v : del){
            int u = *g[v].begin();
            if (ops[i] != -1){
                u = ops[i];
                // cerr << "op " << v << " = " << u << endl;
            }
            ans[v] = ans[u]^1;
            i++;
        }
    };
    set<int> deg2;
    rep(i,0,n){
        g[i].insert(i == n-1 ? 0 : i+1);
        g[i].insert(i == 0 ? n-1 : i-1);
        if (deg(i) == 2){
            deg2.insert(i);
        }
    }
    dfs(dfs,deg2);
    string sans = "";
    rep(i,0,n) sans += (ans[i] == 0 ? 'B' : 'R');
    cout << sans << '\n';
}

int main() {
    std::cin.tie(nullptr);
    std::ios::sync_with_stdio(false);
    int t; cin >> t;
    while (t--){
        solve();
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3580kb

input:

3
3 0
4 1
1 3
6 3
0 2
2 4
4 0

output:

BRB
BBBR
BBRRBR

result:

ok ok (3 test cases)

Test #2:

score: 0
Accepted
time: 174ms
memory: 3816kb

input:

100000
9 6
2 0
4 6
3 6
0 6
0 7
2 6
3 0
5 2
2 4
2 0
6 3
1 5
4 1
2 4
9 6
3 1
6 4
8 1
3 6
1 6
8 6
3 0
7 4
3 0
4 0
6 4
3 1
7 4
5 1
5 0
3 1
1 4
4 1
1 3
6 3
2 4
4 0
2 0
6 3
3 0
1 3
5 3
7 4
0 5
2 5
5 1
3 5
8 5
4 1
5 1
5 0
1 3
5 7
3 0
8 5
0 2
4 6
0 6
0 3
4 0
8 5
5 1
1 4
5 0
3 1
5 7
3 0
10 7
0 2
9 2
5 8
3 9
...

output:

BRBBBBRBR
BRB
BBRRB
RBBBRB
BBBRRRBBR
BRB
BBBRBBR
RBRBRBR
BBBR
BBRRBR
BBBRRB
RBRRRBR
BBBRBRRB
BRB
BRBRBBRB
BBBRBRRB
BRB
BRBBBRRRBR
BBBRRRBR
RRRBBBRBRB
BRBBRRBRBR
RBRBBRBRRB
BRB
RBBBRRB
RBRBRB
RRBBRBRB
BBBR
RRBRBRB
BBBRRRBRBR
RRBBBRB
BBBBRRBR
RBRBRB
BBRRBR
BRB
BRB
BBRBRBRBR
BRRRBBR
BRRBR
RBBBBRRBRB
BR...

result:

ok ok (100000 test cases)

Test #3:

score: 0
Accepted
time: 151ms
memory: 3644kb

input:

100000
8 4
5 3
5 1
6 1
3 1
7 4
5 0
4 1
4 0
3 1
4 0
8 1
4 7
3 0
3 0
8 1
1 3
3 0
9 4
6 0
3 0
3 1
5 0
7 0
6 2
4 2
0 4
7 3
0 3
0 4
1 3
5 1
3 0
10 4
6 8
5 2
1 5
5 3
5 1
1 4
3 0
9 3
5 0
8 6
6 0
3 0
5 2
1 3
1 4
9 0
6 1
4 2
8 1
1 3
5 0
8 2
3 1
6 1
5 1
3 0
8 3
3 0
7 4
7 5
7 2
5 3
1 3
10 3
8 0
0 3
8 5
9 4
3 0...

output:

RBRBBRBR
BRBRBRB
BRBR
BRBRBRBR
BRB
BRB
RBBRBRBB
BRB
BRBRBRRBR
BRBRBRB
BBRRBR
BBBRBRR
BRBRB
RBBBBRBBRB
BBRBR
BRB
BRBRRBRRB
BRB
RBBRB
BRBRBRBRB
RRBBRB
RBBRBRBB
BRBRB
RBBRBRBR
BRBRB
BRBRBBBR
RBBRRBR
BRBRRBRBRB
BRRBRBRRB
BBBRRBRBR
BRBRBR
BBBRRBR
BRB
RBRBRBBRBB
BBRBRB
RRBRBRBRB
RBRRB
BRBRBBRBRB
BBRRB
BBR...

result:

ok ok (100000 test cases)

Test #4:

score: 0
Accepted
time: 500ms
memory: 3632kb

input:

19452
78 75
50 52
61 64
19 21
21 27
52 54
75 5
47 58
15 13
47 66
69 71
66 68
33 36
27 32
15 17
66 60
74 7
63 61
41 13
45 71
30 28
68 71
18 13
13 42
47 55
76 1
19 32
61 66
5 2
22 24
74 71
42 44
59 47
66 46
26 21
49 52
56 58
54 47
52 48
21 25
19 41
10 42
45 74
48 54
39 41
41 18
75 6
39 33
33 37
31 28
...

output:

RRRBRBBBRRBRBBRBRBRRBRBBRBRBBBRBRBBBRBBRRBRRBRRRRBBBRRBRBBRBRRBRBRBRBBBRBRBRBR
BRBRBBRRBRRBRRBRBBRRRBRRBBRBRBRBRRRBRBRBRBRBRRBBBBRRBBBBRRBRBRBBRBRRBRBBRBRBRBRBRRBRBRBR
BRBBRBBBRBBBBBBRBRRBRBBBRBRBRRBRBBRBRBRRBRBBBRRBBRBRBRBBBBRBRRRBRBRBBRBBRBBR
BBRBRRBBRBRBRBRBBBBBRBRRRRBBRRRBRBRBRBRBRBRBRRBRBRRBRBB...

result:

ok ok (19452 test cases)

Test #5:

score: -100
Wrong Answer
time: 425ms
memory: 3864kb

input:

19457
72 56
1 70
0 70
2 70
19 69
64 42
34 32
55 57
22 68
54 48
26 28
41 23
13 10
68 21
62 59
29 26
53 51
30 41
41 38
15 7
66 64
3 15
23 42
47 54
9 7
6 4
47 42
64 22
67 22
17 3
37 35
23 64
30 38
59 61
24 41
70 17
19 70
30 32
17 19
19 21
14 7
2 17
29 24
6 15
69 21
62 55
9 14
16 3
25 29
15 4
53 50
35 3...

output:

BBBRRBRRRBBBRBRBRBRBBRBRBBBRBRBBRRBRBRBBBRBRBRRBBBRRRBRBBRRBRBRBRBRBRBRB
BRRBRBRRBRBRBRBRBRBRBRBRBRBRBRBRBRBRBRBRBRR
RBRBRBRBRBRBRBBRBRBBRBRRBRBRBBRBRBRBRRBBRBRBRBBRRBRBRBRBRBRBRBRBRBRRBRBR
RBBRRBBBRBBRBBRBRRBRBRRRBRBRBRRBRBRBBRBRBRBRBRRBRBRBRBBRRBRBRBBRBRBRRRBRBRBRRBRBRRBRBRB
BRRBRBRRBBRBBBRBRBRBRB...

result:

wrong answer cycle detected (test case 1677)