QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#351146#8011. InstituteSolitaryDream#WA 3ms17936kbC++171.4kb2024-03-11 17:04:102024-03-11 17:04:10

Judging History

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

  • [2024-03-11 17:04:10]
  • 评测
  • 测评结果:WA
  • 用时:3ms
  • 内存:17936kb
  • [2024-03-11 17:04:10]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 10;
int n, m;
vector<int> g[N], g2[N];
int dfn[N], low[N], dclk;
int col[N], colnum;
int ins[N];
stack<int> sta;
inline void Tarjan(int x) {
    dfn[x] = low[x] = ++dclk;
    sta.push(x); ins[x] = 1;
    for (auto y : g[x]) 
        if (!dfn[y]) Tarjan(y), low[x] = min(low[x], low[y]);
        else if (ins[y]) low[x] = min(low[x], dfn[y]);
    if (low[x] == dfn[x]) {
        col[x] = ++colnum;
        ins[x] = 0;
        while (sta.top() != x) {
            col[sta.top()] = x;
            ins[sta.top()] = 0;
            sta.pop();
        }
        sta.pop();
    } 
}
int valid[N], vis[N];
inline void Dfs(int x) {
    if (valid[col[x]]) { 
        cout << "Yes" << endl;
        exit(0);
    }
    vis[x] = 1;
    for (auto y : g[x]) if (!vis[y]) Dfs(y);
    for (auto y : g2[x]) if (!vis[y]) Dfs(y);
}
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, m;
    cin >> n >> m;
    for (int i = 1, x, y, z; i <= m; ++i) {
        cin >> x >> y >> z;
        if (z == 2) g[x].push_back(y);
        else g2[x].push_back(y);
    }
    for (int i = 1; i <= n; ++i) if (!dfn[i]) {
        Tarjan(i);
    }
    for (int x = 1; x <= n; ++x) 
        for (auto y : g[x])
            if (col[y] != col[x]) 
                valid[col[x]] = 1;
    Dfs(1);
    cout << "No" << endl;
    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 3ms
memory: 17868kb

input:

3 4
1 2 1
2 3 2
3 2 1
3 1 2

output:

Yes

result:

ok answer is YES

Test #2:

score: 0
Accepted
time: 0ms
memory: 17700kb

input:

6 8
1 2 1
2 3 2
3 2 2
3 4 1
4 1 2
1 5 2
5 4 2
6 1 2

output:

No

result:

ok answer is NO

Test #3:

score: 0
Accepted
time: 0ms
memory: 17740kb

input:

1000 1000
141 466 1
634 659 1
179 96 2
445 344 2
993 974 1
310 114 2
32 333 1
758 832 1
834 1 1
874 825 2
480 61 2
765 100 2
804 616 1
496 545 1
786 261 2
899 263 1
962 237 2
766 807 1
561 583 1
35 425 1
201 291 1
6 142 1
61 386 2
785 861 2
386 986 2
288 769 2
850 209 1
660 259 2
258 143 2
646 715 2...

output:

Yes

result:

ok answer is YES

Test #4:

score: 0
Accepted
time: 0ms
memory: 17704kb

input:

1000 3000
719 279 2
857 23 1
984 625 2
904 509 2
892 456 2
589 195 2
718 932 2
608 363 1
474 672 1
217 993 2
165 895 2
727 329 2
932 404 2
952 146 2
201 272 2
412 895 2
228 267 2
396 365 2
813 794 2
259 250 1
968 764 2
100 76 2
924 665 2
981 931 2
292 975 2
903 649 2
793 101 2
54 703 1
853 58 2
356 ...

output:

Yes

result:

ok answer is YES

Test #5:

score: -100
Wrong Answer
time: 0ms
memory: 17936kb

input:

1000 3000
686 470 2
132 418 2
775 962 2
814 8 2
450 767 2
580 243 2
742 534 2
508 304 2
396 513 2
731 385 2
499 309 2
144 150 2
111 209 2
340 189 1
219 755 2
511 655 2
428 941 2
165 707 2
253 619 2
140 766 2
999 132 2
415 101 2
887 192 2
598 262 2
312 675 1
97 527 2
407 179 2
11 154 1
107 996 2
586 ...

output:

Yes

result:

wrong answer expected NO, found YES