QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#397095#6745. Delete the TreeVictorYuanWA 1ms3932kbC++142.6kb2024-04-23 16:26:092024-04-23 16:26:09

Judging History

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

  • [2024-04-23 16:26:09]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3932kb
  • [2024-04-23 16:26:09]
  • 提交

answer

#include <bits/stdc++.h> 

const int maxn = 505;

int n, cnt;
std::vector<int> e[maxn], tmp[maxn];
std::vector<std::vector<int>> ans;
int del[maxn];
int siz[maxn],mx_s[maxn];
std::mt19937 rnd;

void dfs1(int x,int fa) {
  siz[x] = 1;
  for(auto v:e[x]) {
    if(v != fa) {
      dfs1(v,x);
      siz[x] += siz[v];
    }
  }
  mx_s[x] = n - siz[x] - cnt;
  for(auto v:e[x]) {
    if(v != fa)
    mx_s[x] = std::max(mx_s[x],siz[v]);
  }
}
int getroot() {
  int x = -1;
  for (int i = 1; i <= n; ++i) if (e[i].size() == 1) { x = i;break; }
  for (int i = 1; i <= n; ++i) if (del[i] == 0) {x = i;break;}
  //dep[x] = 0;
  dfs1(x,0);
  int mn = 1e9,rt = -1;
  for(int i = 1;i <= n;i ++) {
    if(mx_s[i] < mn && del[i] == 0) {
      mn = mx_s[i];
      rt = i;
    }
  }
  return rt;
  assert(false);
}

void dfs(const int u, int pre = -1) {
  for (auto v : e[u]) if (v != pre) {
    dfs(v, u);
  }
  if(e[u].size() == 0) {
    del[u] = 1;
    ans.back().push_back(u);
    return ;
  }
  if(pre == -1) {
    if(e[u].size() == 2 && del[e[u][0]] == 0 && del[e[u][1]] == 0) {
      del[u] = 1;
      ans.back().push_back(u);
    }
    return ;
  }
  if (e[u].size() == 2) {
    int v = e[u][0];
    if (v == pre) v = e[u][1];
    if (!del[v]) {
      del[u] = 1;
      ans.back().push_back(u);
    }
  } else if (e[u].size() < 2 && pre != -1) {
    del[u] = 1;
    ans.back().push_back(u);
  } else if (e[u].size() < 2) {
    if (e[u].size() == 0 || (e[u].size() == 1 && !del[e[u][0]])) {
      del[u] = 1;
      ans.back().push_back(u);
    }
  }
}

int main() {  
  rnd.seed(time(nullptr));
  std::cin >> n;
  for (int u, v, i = 1; i < n; ++i) {
    std::cin >> u >> v;
//    u = i + 1;
//    v = std::max(1, u - 1 - int(rnd() % 3));
    e[u].push_back(v);
    e[v].push_back(u);
  }
  while (cnt != n) {
    ans.push_back(std::vector<int>());
    dfs(getroot());
    for (int i = 1; i <= n; ++i) tmp[i].clear();
    for (int u = 1; u <= n; ++u) if (!del[u]) {
      for (auto v : e[u]) if (!del[v]) {
        tmp[u].push_back(v);
      }
    } else if (del[u] == 1) {
      for (auto v : e[u]) {
        for (auto k : e[u]) if (v != k) {
          tmp[v].push_back(k);
        }
      }
      del[u] = -1;
    }
    for (int i = 1; i <= n; ++i) e[i].swap(tmp[i]);
    cnt += ans.back().size();
  }
  std::cout << ans.size();
//  if(ans.size() - 10 >= 5) return -1;
//  assert(ans.size() <= 10);
  for (auto &i : ans) {
    std::cout << '\n' << i.size(); for (auto j : i) std::cout << ' ' << j;
  }
  std::cout << '\n';
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

5
1 2
1 3
1 4
4 5

output:

3
3 2 3 5
1 4
1 1

result:

ok 

Test #2:

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

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 183 32 334 254 331 348 54 430 275 410 360 468 140 179 93 327 128 365 122 43 46 399 398 269 130 227 412 61 295 98 30 197 397 95 192 266 48 310 283 127 123 7 154 317 302 158 65 218 306 191 309 210 20 190 204 484 182 429 362 99 92 347 39 488 58 115 228 8 346 111 386 498 408 259 289 333 256 352 26...

result:

ok 

Test #3:

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

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 323 205 480 454 142 346 389 232 228 357 362 316 163 176 210 294 124 339 223 409 175 474 181 81 140 301 134 215 471 4 122 456 160 484 331 318 22 69 105 342 219 363 446 194 408 25 101 84 407 60 488 348 157 358 211 423 169 403 303 499 486 286 436 356 493 190 47 366 347 90 213 264 75 398 102 70 ...

result:

ok 

Test #4:

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

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 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 55 270 253 152 362 371 404 89 47 ...

result:

ok 

Test #5:

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

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 348 226 394 358 296 34 443 218 268 269 326 369 186 407 408 388 479 444 241 129 397 246 289 264 191 64 48 243 161 58 293 228 364 490 298 141 351 436 449 220 320 288 292 9 96 465 271 100 63 287 128 448 342 473 10 164 331 132 337 376 266 311 27 363 182 198 396 300 291 453 156 53 306 153 81 91 116...

result:

ok 

Test #6:

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

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 95 437 337 152 185 484 165 41 322 334 32 118 232 57 329 89 482 54 461 433 226 183 229 102 468 253 328 115 452 470 210 90 403 55 123 206 251 236 98 290 471 301 22 167 124 179 310 79 205 492 245 113 276 38 241 33 46 488 312 169 345 466 122 129 272 161 143 282 379 462 293 263 63 224 493 318 99 36...

result:

ok 

Test #7:

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

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 133 1 455 207 390 467 454 68 151 103 477 377 334 428 96 126 416 236 233 145 187 464 500 312 394 175 246 391 139 62 499 310 315 100 3 424 137 301 263 395 72 16 423 337 106 165 387 262 109 256 240 360 441 177 325 300 451 304 368 87 125 361 241 259 163 69 468 37 146 436 352 193 285 211 306 203 28...

result:

ok 

Test #8:

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

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:

9
281 70 486 80 94 64 454 149 63 236 177 175 212 459 304 13 487 373 186 140 270 52 443 246 130 191 234 167 480 406 155 183 401 471 325 69 82 380 182 342 379 294 353 25 104 95 196 32 132 208 218 337 415 281 404 492 251 11 491 51 416 424 110 178 375 204 440 17 472 359 351 231 117 303 90 461 311 457 7 ...

result:

ok 

Test #9:

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

input:

500
93 209
209 367
209 438
209 314
209 332
152 209
209 443
209 471
209 315
209 342
209 459
209 460
209 462
209 211
209 341
191 209
209 329
185 209
209 350
209 468
209 493
209 363
209 224
35 209
209 253
209 212
86 209
204 209
186 209
209 262
193 209
209 275
209 427
141 209
88 209
149 209
209 409
209 ...

output:

9
349 93 367 438 314 332 152 443 471 315 342 459 460 462 211 341 191 329 185 350 468 493 363 224 35 253 212 86 204 186 262 193 275 427 141 88 149 409 466 279 173 422 292 103 328 465 169 64 213 117 73 480 229 205 322 44 301 303 454 399 496 426 14 436 359 249 345 231 187 55 302 221 451 268 347 290 135...

result:

ok 

Test #10:

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

input:

500
130 139
139 400
130 318
267 318
318 389
21 400
21 36
21 26
267 321
321 401
18 321
200 389
200 307
66 200
36 274
95 274
96 274
26 357
192 357
220 357
385 401
290 385
46 385
18 53
53 301
53 231
166 307
166 287
3 166
66 212
212 410
212 438
95 155
151 155
155 305
41 96
41 478
41 148
112 192
112 137
...

output:

8
333 44 472 366 388 61 317 140 426 4 350 122 319 138 322 151 207 398 223 104 165 128 172 328 382 494 416 227 222 483 305 95 325 161 136 221 100 254 462 467 252 443 320 121 268 57 478 247 490 260 6 284 163 29 164 282 208 393 99 304 383 148 96 36 28 241 173 314 115 332 23 327 235 78 367 16 392 468 13...

result:

ok 

Test #11:

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

input:

500
117 264
117 456
175 264
264 500
2 456
218 456
175 480
175 343
265 500
432 500
2 475
2 487
63 218
218 421
377 480
444 480
84 343
151 343
265 281
133 265
252 432
181 432
346 475
445 475
16 487
330 487
25 63
63 102
79 421
101 421
266 377
142 377
409 444
434 444
84 291
84 284
8 151
151 333
281 358
2...

output:

9
251 12 391 9 5 294 338 126 477 103 139 150 417 36 184 179 365 124 215 114 303 123 469 64 347 231 482 380 376 465 226 283 437 320 159 397 282 258 402 292 227 153 154 26 225 495 74 125 462 209 193 81 302 108 485 372 173 316 214 234 337 408 383 58 304 117 453 228 232 169 162 371 156 457 186 293 243 4...

result:

ok 

Test #12:

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

input:

500
33 453
291 377
33 291
73 424
215 392
66 496
66 215
309 424
66 309
246 291
246 309
154 467
454 482
110 184
110 454
154 455
110 455
56 199
155 494
56 155
294 311
102 109
105 225
105 109
289 311
105 289
155 452
289 452
347 455
347 452
113 246
113 347
43 463
232 292
83 386
83 232
299 463
83 299
293 ...

output:

12
213 377 453 73 496 392 467 184 482 494 199 294 225 102 43 386 292 272 293 274 195 336 264 338 324 62 148 342 115 252 170 18 221 466 484 266 378 409 396 119 90 339 499 474 315 281 295 138 201 268 472 460 422 198 19 343 20 78 368 262 359 222 127 81 489 303 447 369 93 468 415 219 405 385 121 434 476...

result:

wrong answer Integer 12 violates the range [0, 10]