QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#412309#6745. Delete the TreeYnoiynoiWA 1ms4256kbC++171.6kb2024-05-16 11:41:432024-05-16 11:41:45

Judging History

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

  • [2024-05-16 11:41:45]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:4256kb
  • [2024-05-16 11:41:43]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;

const int N=500+10;
int n,f[N],tot,rt;
bool del[N];
set<int>e[N];
vector<int>tmp;
vector<vector<int>>ans;

void dfs(int x,int fa)
{
	f[x]=fa;
	if(fa) e[x].erase(fa);
	for(int y:e[x]) dfs(y,x);
}

void dfs2(int x)
{
	if(e[x].size()==0)
	{
		del[x]=1,tmp.push_back(x);
	}
	for(int y:e[x]) dfs2(y);
	if(e[x].size()==1&&!del[*e[x].begin()])
	{
		del[x]=1,tmp.push_back(x);
	}
	else if(x==rt&&e[x].size()==2&&!del[*e[x].begin()]&&!del[*++e[x].begin()])
	{
		del[x]=1,tmp.push_back(x);
	}
}

int main()
{
	// freopen("1.in","r",stdin);
	scanf("%d",&n);
	for(int i=1;i<n;++i)
	{
		int x,y; scanf("%d%d",&x,&y);
		e[x].insert(y),e[y].insert(x);
	}
	srand(time(0));
	for(int i=1;i<=n;++i)
	{
		if(e[i].size()>1)
		{
			rt=i;
		}
	}
	dfs(rt,0);
	while(tot<n)
	{
		tmp.clear();
		// printf("-begin\n");
		dfs2(rt);
		// printf("-end\n");
		for(int x:tmp)
		{
			if(x==rt)
			{
				if(e[x].size()==0) rt=0;
				else if(e[x].size()==1) rt=*e[x].begin();
				else
				{
					int son1=*e[x].begin(),son2=*++e[x].begin();
					f[son1]=f[son2]=0,e[son1].insert(son2),rt=son1;
				}
				continue;
			}
			int fa=f[x],son=e[x].empty()?0:(*e[x].begin());
			if(fa)
			{
				e[fa].erase(x);
				if(son) e[fa].insert(son);
			}
			if(son) f[son]=fa;
		}
		ans.push_back(tmp);
		tot+=tmp.size();
		// printf("tot = %d\n",tot);
	}
	if(ans.size()>10) while(1);
	printf("%d\n",ans.size());
	for(vector<int>now:ans)
	{
		printf("%d ",now.size());
		for(int x:now) printf("%d ",x);
		puts("");
	}
	return 0;
}

詳細信息

Test #1:

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

input:

5
1 2
1 3
1 4
4 5

output:

3
3 2 3 5 
1 1 
1 4 

result:

ok 

Test #2:

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

input:

500
183 443
32 443
334 443
254 443
331 443
348 443
54 443
430 443
275 443
410 443
360 443
443 468
140 443
179 443
93 443
327 443
128 443
365 443
122 443
43 443
46 443
399 443
398 443
269 443
130 443
227 443
412 443
61 443
295 443
98 443
30 443
197 443
397 443
95 443
192 443
266 443
48 443
310 443
28...

output:

2
499 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 10...

result:

ok 

Test #3:

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

input:

500
80 180
80 254
1 180
80 337
180 323
80 248
180 205
80 189
180 480
80 330
180 454
80 498
142 180
80 193
180 346
80 89
180 389
80 125
180 232
80 93
180 228
80 327
180 357
80 417
180 362
80 278
180 316
80 312
163 180
80 310
176 180
80 463
180 210
80 478
180 294
80 185
124 180
80 143
180 339
80 253
1...

output:

3
498 1 2 4 6 9 11 12 13 14 16 17 19 22 24 25 26 29 30 31 36 37 38 39 40 41 42 44 45 47 49 52 57 58 59 60 66 67 69 70 71 73 74 75 3 5 7 8 10 15 18 20 21 23 27 28 32 33 34 35 43 46 48 50 51 53 54 55 56 61 62 63 64 65 68 72 76 77 78 79 83 86 87 88 89 91 93 94 95 96 98 106 109 111 114 118 120 123 125 1...

result:

ok 

Test #4:

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

input:

500
387 488
301 488
301 413
13 413
13 265
176 265
176 398
74 398
74 241
241 415
386 415
386 448
210 448
210 285
147 285
147 264
19 264
19 314
314 335
54 335
54 261
261 484
425 484
350 425
156 350
156 164
164 420
8 420
8 309
230 309
230 441
408 441
183 408
183 410
204 410
204 318
151 318
151 328
328 ...

output:

9
250 232 220 354 372 278 260 201 497 387 301 13 176 74 415 448 285 264 314 54 484 350 164 8 230 408 410 318 328 494 111 21 477 273 133 310 78 480 192 417 471 266 432 424 269 12 308 226 333 234 104 70 434 457 406 179 473 239 227 190 365 79 81 123 416 483 80 338 467 5 470 22 188 212 347 476 332 341 5...

result:

ok 

Test #5:

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

input:

500
147 209
104 147
13 209
209 466
104 485
17 104
13 214
13 179
151 466
176 466
130 485
286 485
17 359
17 178
214 486
55 214
179 350
179 327
151 167
151 498
146 176
102 176
99 130
130 232
286 294
286 389
56 359
330 359
178 488
178 441
440 486
210 486
55 157
55 458
237 350
350 352
327 371
317 327
167...

output:

9
251 6 20 184 417 19 367 123 383 197 239 233 307 187 420 272 375 32 51 170 196 33 277 44 315 333 412 325 401 250 355 67 107 274 318 66 478 112 275 3 5 313 463 418 472 73 391 41 361 282 374 90 142 392 404 263 471 260 427 304 370 278 362 113 234 356 357 262 497 297 341 221 365 139 403 386 470 180 474...

result:

ok 

Test #6:

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

input:

500
323 449
449 474
198 449
431 449
69 449
336 449
402 449
240 449
43 449
82 449
335 449
86 449
427 449
220 449
26 449
449 477
449 465
73 449
325 449
1 449
144 449
432 449
203 449
443 449
95 323
323 437
323 337
152 323
185 323
323 484
165 323
41 323
322 323
323 334
32 323
118 323
232 323
57 323
323 ...

output:

3
480 12 16 24 40 47 51 72 84 100 114 145 171 190 201 238 287 306 320 330 342 343 356 382 445 1 3 7 10 14 31 60 107 116 193 233 256 257 266 283 291 295 319 357 363 381 408 429 439 441 494 2 4 6 56 121 135 137 157 174 197 202 239 250 273 289 305 326 355 370 380 399 411 447 451 487 17 34 64 65 83 108 ...

result:

ok 

Test #7:

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

input:

500
274 432
133 274
274 491
274 455
207 274
274 315
265 274
10 274
203 274
274 289
274 474
374 432
414 432
116 274
385 414
274 364
1 491
10 365
432 493
10 306
374 463
5 116
302 385
265 285
127 315
86 127
127 246
282 374
98 302
98 206
282 344
127 391
127 231
62 231
33 231
86 104
211 365
194 206
194 4...

output:

9
274 166 41 244 152 141 316 2 45 319 108 24 89 459 355 447 12 53 288 192 425 481 272 17 198 60 136 328 296 201 421 156 410 101 140 336 417 50 383 66 409 420 113 249 239 84 90 490 229 143 237 494 283 226 327 57 78 406 449 255 64 369 6 407 266 437 180 347 223 402 411 79 32 202 38 418 469 318 83 77 41...

result:

ok 

Test #8:

score: -100
Wrong Answer
time: 1ms
memory: 3960kb

input:

500
50 287
287 496
64 287
287 454
149 287
63 287
287 372
108 287
52 287
287 320
287 406
155 287
287 294
128 287
17 287
259 287
6 287
54 294
128 462
247 287
161 287
128 440
172 287
171 287
156 287
397 496
108 270
350 397
287 432
7 259
54 183
280 320
473 496
50 88
432 494
54 195
79 287
50 94
41 320
70...

output:

7
281 107 39 45 248 37 448 230 399 285 302 357 170 412 62 43 133 441 135 210 139 216 233 229 29 112 209 142 420 87 53 292 391 24 151 10 129 330 366 2 85 243 256 331 360 263 298 181 469 433 446 345 489 121 150 276 245 257 315 483 173 439 200 396 361 349 466 477 180 307 309 92 347 227 143 452 365 344 ...

result:

wrong answer