UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#194486#3411. 紫丁香FAT1002779ms117836kbC++111.2kb2023-10-15 15:34:312023-10-15 18:48:49

answer

#include <bits/stdc++.h>
#define PB push_back
#define EB emplace_back
using namespace std;
const int maxn = 600000, maxm = 900000;
pair<int, int> e[maxm + 5];
int bl[maxn + 5], sz[maxn + 5];
vector<int> L[maxn + 5];
int fr[maxm + 5], to[maxm + 5];
vector<int> mv[maxm + 5];
int val[maxn + 5], s[maxn + 5];
int main() {
	int n, m;
	scanf("%d%d", &n, &m);
	for (int i = 1; i <= m; i++) {
		int u, v;
		scanf("%d%d", &u, &v);
		e[i] = {u + 1, v + 1};
	}
	for (int i = 1; i <= n; i++) bl[i] = i, sz[i] = 1, L[i] = {i};
	for (int i = m; i; i--) {
		int u, v; tie(u, v) = e[i];
		if (bl[u] != bl[v]) {
			u = bl[u], v = bl[v];
			if (sz[u] < sz[v]) swap(u, v);
			fr[i] = u, to[i] = v;
			mv[i] = L[v];
			for (int x : L[v]) L[u].PB(x), bl[x] = u;
			L[v].clear();
			sz[u] += sz[v];
		}
	}
	fill(s + 1, s + n + 1, 1);
	val[bl[1]] = n & 1;
	for (int i = 1; i <= m; i++) {
		bool kp = 0;
		if (fr[i]) {
			val[to[i]] = 0;
			for (int x : mv[i]) {
				val[to[i]] ^= s[x];
				bl[x] = to[i];
			}
			val[fr[i]] ^= val[to[i]];
			if (val[to[i]] != val[fr[i]] || val[fr[i]]) kp = 1;
		} else kp = 1;
		putchar('0' + kp);
		if (kp) {
			int u, v; tie(u, v) = e[i];
			s[u] ^= 1, s[v] ^= 1;
			val[bl[u]] ^= 1, val[bl[v]] ^= 1;
		}
	}
} 

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 5
Accepted
time: 7ms
memory: 43448kb

input:

16 20
2 0
12 7
9 5
8 5
10 6
10 4
6 7
15 4
3 12
3 2
0 4
11 7
6 2
7 4
15 11
14 13
1 0
4 3
5 0
13 9

output:

11111011010110011010

result:

ok "11111011010110011010"

Test #2:

score: 5
Accepted
time: 4ms
memory: 43448kb

input:

18 20
1 11
10 3
16 11
6 2
7 5
3 1
17 16
12 9
9 7
8 4
7 6
15 14
1 0
4 2
5 3
14 13
10 6
11 10
2 0
13 8

output:

11011011000101000011

result:

ok "11011011000101000011"

Test #3:

score: 5
Accepted
time: 11ms
memory: 43444kb

input:

15 20
1 0
5 4
1 10
8 12
2 0
7 5
4 2
10 6
9 5
11 10
1 9
1 14
12 9
14 12
8 5
13 10
11 3
3 2
8 11
6 3

output:

11111101101011011000

result:

ok "11111101101011011000"

Test #4:

score: 5
Accepted
time: 7ms
memory: 43452kb

input:

17 20
16 13
11 9
10 7
3 2
13 6
8 4
5 2
14 10
6 5
2 1
9 6
7 5
13 14
11 5
15 13
1 0
6 3
4 0
13 9
12 9

output:

11111110010010110011

result:

ok "11111110010010110011"

Test #5:

score: 5
Accepted
time: 7ms
memory: 43476kb

input:

300 299
294 281
166 158
222 217
151 145
84 71
267 261
247 241
286 281
76 66
180 169
39 20
232 222
27...

output:

1111111111110011111101011111001110001100111110110111110010110101110101011011011110010101000100001101...

result:

ok "111111111111001111110101111100...1011101011010010110111110011101"

Test #6:

score: 5
Accepted
time: 11ms
memory: 43640kb

input:

2000 1999
757 585
1373 1236
1295 1280
727 618
833 710
258 215
89 76
687 508
1074 1019
293 143
50 14
...

output:

1011111111111111010110101110111111110110101110110001001111110110010000001110011010010100101011100111...

result:

ok "101111111111111101011010111011...1111101000101111011000111111111"

Test #7:

score: 5
Accepted
time: 71ms
memory: 55004kb

input:

100000 99999
73194 73008
41052 40941
55220 55039
86403 86384
4179 4160
10646 10568
56215 56159
45981...

output:

1110100111101100011001101011011000110011111111010100110110111000101101101111111011010010111110010111...

result:

ok "111010011110110001100110101101...0110111110110100010001110001111"

Test #8:

score: 5
Accepted
time: 658ms
memory: 110756kb

input:

600000 599999
194132 191404
140239 136191
4921 1282
419648 418493
153091 150134
296533 296481
519209...

output:

1111101110011101111010100010001000110100000110001010111111111110110001110101110110000101100100110111...

result:

ok "111110111001110111101010001000...1000100001110111001001011010011"

Test #9:

score: 5
Accepted
time: 19ms
memory: 43476kb

input:

299 298
201 165
224 184
162 143
47 43
119 112
261 247
176 163
147 137
48 30
204 166
277 270
231 213
...

output:

1111111101110000011100111110101101010011110011000111111011111110110101101101011010001101011000111100...

result:

ok "111111110111000001110011111010...1111000001011110111101001111110"

Test #10:

score: 5
Accepted
time: 17ms
memory: 43632kb

input:

1999 1998
1355 1122
981 623
1086 662
375 361
1977 1895
1433 1305
557 453
294 252
525 95
495 155
508 ...

output:

1111110011101111101101001111011101110010111111000001111010111010011101111011101111011001111011111111...

result:

ok "111111001110111110110100111101...1010000110001111111001101110100"

Test #11:

score: 5
Accepted
time: 74ms
memory: 55296kb

input:

99999 99998
25022 25018
65119 65045
11448 11360
54753 54705
99099 99019
8814 8801
11834 11833
4696 4...

output:

1111101010011100111111100111100101101101010100111111111011110111101111101011111100011101100011000000...

result:

ok "111110101001110011111110011110...0011111010111111010100011111010"

Test #12:

score: 5
Accepted
time: 607ms
memory: 117836kb

input:

599999 599998
125088 125025
398757 398663
167632 167499
258120 257975
475342 475233
193827 193810
59...

output:

1110110101110110111101111011111000011101101100111111110101100101010111010111101111011101110110101111...

result:

ok "111011010111011011110111101111...1010011001001111101001100000011"

Test #13:

score: 5
Accepted
time: 18ms
memory: 43484kb

input:

300 1000
77 293
281 262
159 18
100 97
183 181
290 121
191 51
164 153
291 157
239 222
20 98
250 242
1...

output:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

result:

ok "111111111111111111111111111111...1100110011110100111111101000000"

Test #14:

score: 5
Accepted
time: 0ms
memory: 43672kb

input:

2000 9000
636 345
687 647
1682 568
1056 1310
1646 1159
560 1496
1309 543
1848 1814
47 3
244 424
590 ...

output:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

result:

ok "111111111111111111111111111111...1101000100111000001001001001001"

Test #15:

score: 5
Accepted
time: 83ms
memory: 53840kb

input:

100000 230000
10511 94005
24602 24585
33423 1387
67759 4745
8186 94797
73254 63598
57411 37525
83831...

output:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

result:

ok "111111111111111111111111111111...0011011010011001011001101010101"

Test #16:

score: 5
Accepted
time: 552ms
memory: 103600kb

input:

600000 900000
296769 296551
458090 457857
239064 239003
184305 184304
221498 350568
253198 253084
24...

output:

1111111111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111...

result:

ok "111111111111111111110111111111...1000101000001001111011000110101"

Test #17:

score: 5
Accepted
time: 8ms
memory: 43484kb

input:

299 770
285 270
189 187
129 101
100 3
92 90
250 110
154 120
131 107
175 255
230 220
154 87
67 52
258...

output:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

result:

ok "111111111111111111111111111111...1100001110011000100100110101000"

Test #18:

score: 5
Accepted
time: 4ms
memory: 43644kb

input:

1999 4500
1897 1865
250 180
1381 777
266 586
1777 1753
812 69
770 744
41 18
1324 672
1965 1951
1560 ...

output:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

result:

ok "111111111111111111111111111111...1001001100111100010011001111100"

Test #19:

score: 5
Accepted
time: 89ms
memory: 53608kb

input:

99999 190000
90162 81985
81949 81930
54529 84617
84796 93322
27605 27545
26745 26710
71204 64464
634...

output:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

result:

ok "111111111111111111111111111111...0111101101110000110110110001110"

Test #20:

score: 5
Accepted
time: 532ms
memory: 103544kb

input:

599999 900000
385514 385468
292526 292439
9606 9495
367860 547671
271946 271942
504559 504485
158913...

output:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

result:

ok "111111111111111111111111111111...0010011011001100011111110100000"

Extra Test:

score: 0
Extra Test Passed