QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#303937#8011. Instituteucup-team2303#WA 4ms24664kbC++111.9kb2024-01-13 08:40:232024-01-13 08:40:25

Judging History

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

  • [2024-01-13 08:40:25]
  • 评测
  • 测评结果:WA
  • 用时:4ms
  • 内存:24664kb
  • [2024-01-13 08:40:23]
  • 提交

answer

/*
60 + 0 + 100 + 64 = 224.
*/
#include <bits/stdc++.h>
using namespace std;
#define L(i, j, k) for (int i = (j); i <= (k); i++)
#define R(i, j, k) for (int i = (j); i >= (k); i--)
//#define int long long
#define ll long long
#define pb push_back
#define pii pair<int, int>
inline int read()
{
    int sum = 0, nega = 1;
    char ch = getchar();
    while (ch > '9'||ch < '0')
    {
        if (ch == '-') nega = -1;
        ch = getchar();
    }
    while (ch <= '9' && ch >= '0') sum = sum * 10 + ch - '0', ch = getchar();
    return sum * nega;
}
const int N = 3e5 + 9, M = 2e6 + 9;
int n, m, val[N], a[N], dfn[N], tim, sta[N], col[N], co, dp[N], deg[N], top, low[N];
vector<int> G[N], T[N];
bool vis[N];
inline void tarjan(int u)
{
    dfn[u] = low[u] = ++tim; vis[u] = 1, sta[++top] = u;
    for (auto v : G[u])
    {
        if(!dfn[v]) tarjan(v), low[u] = min(low[u], low[v]);
        else if(vis[v]) low[u] = min(low[u], dfn[v]);
    }
    if(dfn[u] == low[u])
    {
        co++;
        while(sta[top] != u)
        {
            int v = sta[top];
            col[v] = co, vis[v] = 0, val[co] += a[v], top--;
        }
        col[u] = co, vis[u] = 0, val[co] += a[u], top--;
    }
    return ;
}
bool used[N];
bool mer[N];
signed main()
{
    n = read(), m = read();
    L(i, 1, n) a[i] = 1;
    L(i, 1, m)
    {
        int u = read(), v = read(), w = read();
        if(u == v && w == 2) mer[u] = 1;
        if(w == 2) G[u].pb(v);
        T[u].pb(v);
    }
    queue<int> q; q.push(1); used[1] = 1;
    while(!q.empty())
    {
    	int u = q.front(); q.pop();
    	for (auto v : T[u])
			if(!used[v]) used[v] = 1, q.push(v);
	}
    L(i, 1, n) vis[i] = 0;
    L(i, 1, n)
        if(!dfn[i]) tarjan(i);
	L(i, 1, n)
		if(used[i] && val[col[i]] == 1 && !mer[i])
		{
			puts("Yes"); return 0;
		}
	puts("No");
    return 0;
}

详细

Test #1:

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

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: 20236kb

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: 4ms
memory: 20048kb

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: 23380kb

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: 0
Accepted
time: 3ms
memory: 20284kb

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:

No

result:

ok answer is NO

Test #6:

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

input:

10000 10000
1496 8533 1
6761 8802 2
3147 8733 2
7074 899 1
4191 9520 2
2576 1464 1
8600 116 2
72 5894 1
1605 6769 1
344 2583 2
9951 8053 2
2663 1396 1
3172 7307 1
8490 8085 2
6623 7814 2
680 4471 2
4906 3810 1
5952 8860 1
9670 3644 2
7993 6329 2
4666 1119 2
3115 3676 2
4506 2979 2
1451 2540 2
5002 9...

output:

Yes

result:

wrong answer expected NO, found YES