QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#375758#6830. Just Some Bad Memory369PaiWA 41ms16756kbC++141.9kb2024-04-03 15:33:232024-04-03 15:33:24

Judging History

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

  • [2024-04-03 15:33:24]
  • 评测
  • 测评结果:WA
  • 用时:41ms
  • 内存:16756kb
  • [2024-04-03 15:33:23]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5 , M = N * 2;
int n , m , dep[N] , mx[N];
int num , dfn[N] , low[N];
int cnt , col[N] , sz[N] , deg[N];
int tot = 1 , head[N];
struct Edge{int to , nxt;}e[M * 2];
bool bridge[M * 2] , even , odd , chain;
void Add(int u , int v){e[++tot] = {v , head[u]} , head[u] = tot;}
void Dfs(int u , int fa)
{
	low[u] = dfn[u] = ++num;
	dep[u] = dep[fa] + 1 , mx[u] = 0;
	for(int i = head[u] ; i ; i = e[i].nxt)
	{
		int v = e[i].to;
		if(v == fa)continue ;
		if(!dfn[v])
		{
			Dfs(v , u);
			if(mx[u] + mx[v] + 1 > 3)chain = 1;
			mx[u] = max(mx[u] , mx[v] + 1);
			low[u] = min(low[u] , low[v]);
			if(dfn[u] < low[v])
				bridge[i] = bridge[i ^ 1] = 1;
		}
		else 
		{
			low[u] = min(low[u] , dfn[v]);
			int len = dep[u] - dep[v] + 1;
			if(len & 1)odd = 1;
			else even = 1;
		}
	}
}
void Dfs2(int u)
{
	col[u] = cnt , sz[cnt]++;
	for(int i = head[u] ; i ; i = e[i].nxt)
	{
		int v = e[i].to;
		if(!bridge[i] && !col[v])Dfs2(v);
	}
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0) , cout.tie(0);
	cin >> n >> m;
	for(int i = 1 ; i <= m ; i++)
	{
		int u , v; cin >> u >> v;
		Add(u , v) , Add(v , u);
	}
	if(n <= 3)return cout << "-1\n" , 0;
	if(m <= 2)return cout << 5 - m << "\n" , 0;
	for(int i = 1 ; i <= n ; i++)
		if(!dfn[i])Dfs(i , 0);
	for(int i = 1 ; i <= n ; i++)
		if(!col[i])cnt++ , Dfs2(i);
	for(int i = 2 ; i <= tot ; i += 2)
	{
		int u = e[i ^ 1].to , v = e[i].to;
		if(col[u] == col[v])deg[u]++ , deg[v]++;
	}
	for(int i = 1 ; i <= cnt ; i++)
	{
		if(sz[i] >= 3)
		{
			if(sz[i] & 1)odd = 1;
			else even = 1;
		}
	}
	for(int i = 1 ; i <= n ; i++)
		if(sz[col[i]] > 3 && deg[i] > 2)even = 1;
	if(odd && even)cout << "0\n";
	else if(even)cout << "1\n";
	else if(odd)cout << 2 - chain << "\n";
	else cout << 3 - chain << "\n";
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 5748kb

input:

3 3
1 2
2 3
1 3

output:

-1

result:

ok "-1"

Test #2:

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

input:

4 0

output:

5

result:

ok "5"

Test #3:

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

input:

5 4
1 2
2 3
3 4
4 5

output:

2

result:

ok "2"

Test #4:

score: 0
Accepted
time: 1ms
memory: 5772kb

input:

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

output:

0

result:

ok "0"

Test #5:

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

input:

4 4
1 2
2 3
3 4
4 1

output:

1

result:

ok "1"

Test #6:

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

input:

7 7
1 2
2 3
3 4
4 1
5 6
6 7
7 5

output:

0

result:

ok "0"

Test #7:

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

input:

4 3
1 2
2 3
3 1

output:

2

result:

ok "2"

Test #8:

score: 0
Accepted
time: 18ms
memory: 8168kb

input:

100000 99999
13413 22698
22698 36667
13413 64418
36667 75207
36667 73542
75207 91445
64418 3222
36667 96990
73542 61771
96990 33073
22698 32560
33073 24210
33073 38905
75207 46243
75207 89600
89600 11756
36667 94609
89600 6427
3222 46213
11756 43560
46243 50875
36667 45066
24210 54458
36667 80150
22...

output:

2

result:

ok "2"

Test #9:

score: 0
Accepted
time: 18ms
memory: 8168kb

input:

100000 99999
77731 86926
77731 23800
86926 89529
23800 33493
86926 30923
23800 25737
23800 48382
25737 35288
48382 23623
35288 83350
35288 43718
89529 46770
30923 29
30923 73178
86926 8382
46770 75585
48382 67116
30923 20689
30923 97292
23800 82313
35288 85630
82313 74213
86926 48620
97292 86647
257...

output:

2

result:

ok "2"

Test #10:

score: 0
Accepted
time: 14ms
memory: 8624kb

input:

100000 99999
4582 99058
99058 87803
87803 5778
5778 21286
99058 64435
5778 25340
99058 84070
99058 92757
87803 48753
21286 71681
21286 50429
71681 22737
21286 48717
48717 81253
64435 23411
5778 30866
81253 76210
50429 16277
81253 16082
99058 32379
84070 95446
76210 40309
76210 35756
25340 71091
2273...

output:

2

result:

ok "2"

Test #11:

score: 0
Accepted
time: 14ms
memory: 8944kb

input:

100000 99999
34790 25024
25024 36551
34790 82646
82646 38938
25024 1562
34790 95790
1562 76262
76262 24681
38938 4943
95790 8669
95790 88401
4943 41293
38938 21530
41293 66721
34790 9066
25024 73316
76262 47595
25024 59910
66721 46517
82646 46936
21530 22361
9066 94253
1562 46296
94253 13074
59910 7...

output:

2

result:

ok "2"

Test #12:

score: 0
Accepted
time: 11ms
memory: 8116kb

input:

100000 99999
98079 73822
73822 63887
73822 71664
98079 65268
65268 72803
71664 77367
65268 85207
77367 39346
65268 55506
63887 49410
85207 35890
55506 51351
85207 87756
51351 47722
87756 31267
35890 91571
39346 9577
31267 31563
91571 59354
87756 27975
85207 59323
27975 34647
63887 52810
31267 83138
...

output:

2

result:

ok "2"

Test #13:

score: 0
Accepted
time: 17ms
memory: 16756kb

input:

100000 100000
42276 12823
12823 87747
87747 59217
59217 2160
2160 85115
85115 75999
75999 74783
74783 84010
84010 20464
20464 41872
41872 31981
31981 2637
2637 97876
97876 70375
70375 63190
63190 65186
65186 42079
42079 60599
60599 76194
76194 30514
30514 69887
69887 87790
87790 88443
88443 63301
63...

output:

1

result:

ok "1"

Test #14:

score: 0
Accepted
time: 16ms
memory: 8848kb

input:

100000 99839
3777 83777
92737 22487
3405 34804
3405 63348
71869 16450
25024 77034
45886 70138
46420 99380
71372 15729
62782 59134
62782 17644
40931 60627
41776 72468
26424 19072
26424 62020
82982 49540
57857 19904
13263 65383
30740 28382
30740 59687
76880 49124
88187 10493
56456 27193
56456 95532
76...

output:

0

result:

ok "0"

Test #15:

score: 0
Accepted
time: 14ms
memory: 8944kb

input:

100000 99846
66429 19818
1142 65323
89629 2650
89629 42870
60529 13997
20679 78690
20679 5269
8110 28183
34782 58319
26797 17740
21871 93617
83053 29948
14688 55200
52483 73309
56841 6633
56841 55711
95177 89002
57442 17594
16875 7796
16875 8418
33959 24119
33959 33295
67593 42353
36122 96814
36122 ...

output:

1

result:

ok "1"

Test #16:

score: 0
Accepted
time: 12ms
memory: 8728kb

input:

100000 99840
61287 64073
89052 6689
89052 74027
83146 40301
55950 89689
89833 57298
89833 42280
19736 77515
19736 50538
31174 39104
14153 51424
14153 31424
56843 90058
46315 9861
81108 51034
47276 31883
47276 13174
25797 42555
18853 97994
67050 80142
7186 30565
45598 65037
72065 47586
72065 52587
44...

output:

0

result:

ok "0"

Test #17:

score: 0
Accepted
time: 14ms
memory: 10052kb

input:

100000 99837
52632 49066
8207 69824
92267 29339
87828 81159
86585 34918
5072 88375
5072 46372
4237 72777
4237 66222
32455 3061
17684 42281
41275 34536
72839 74066
45095 66825
45095 188
31633 52839
14240 7205
14240 62813
37523 40559
37523 22436
95403 86964
95403 75
24404 73
54534 32797
46562 88745
70...

output:

0

result:

ok "0"

Test #18:

score: 0
Accepted
time: 41ms
memory: 14516kb

input:

100000 200000
91756 69297
91756 4545
91756 53749
91756 54529
91756 72391
91756 1260
91756 94514
69297 56396
69297 94148
69297 44667
69297 73169
69297 81731
19501 62537
19501 96669
19501 78118
19501 59314
19501 21054
19501 96372
19501 39387
19501 50363
19501 80139
19501 8413
34623 10037
34623 20572
1...

output:

0

result:

ok "0"

Test #19:

score: -100
Wrong Answer
time: 29ms
memory: 14640kb

input:

100000 199999
94566 78687
94566 29032
94566 67782
94566 6508
22336 61573
22336 97677
22336 16991
22336 37766
22336 58704
22336 6768
22336 60250
22336 33412
22336 11114
56860 62498
56860 75679
56860 66179
56860 8667
56860 29468
27072 73747
27072 41786
58625 45299
58625 63322
58625 47995
58625 92457
5...

output:

0

result:

wrong answer 1st words differ - expected: '1', found: '0'