QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#413572#6745. Delete the TreeHHY_zZhu#RE 1ms3824kbC++203.3kb2024-05-17 19:06:522024-05-17 19:06:52

Judging History

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

  • [2024-05-17 19:06:52]
  • 评测
  • 测评结果:RE
  • 用时:1ms
  • 内存:3824kb
  • [2024-05-17 19:06:52]
  • 提交

answer

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

struct nd{
    vector<int>ed;
    int col;
    int v;
    int fa;
}sg[505];
mt19937 myrand(random_device{}());
struct pt{
    int x;
    int y;
};

void add(int x,int y){
    sg[x].ed.push_back(y);
    sg[y].ed.push_back(x);
}
int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int n;
    cin>>n;
    for(int i=0;i<n-1;i++){
        int x,y;
        cin>>x>>y;
        add(x,y);
    }
    for(int i=1;i<=n;i++){
        sg[i].v=1;
    }
    int ndcnt=n;
    int opcnt=0;
    vector<int>op[505];
    while(ndcnt>0){
        int rt=0;
        opcnt++;
        /*
        cout<<"op:"<<opcnt<<'\n';
        for(int i=1;i<=n;i++){
            cout<<i<<' ';
            cout<<sg[i].ed.size()<<' '<<'Q';
            for(int j=0;j<sg[i].ed.size();j++){
                cout<<sg[i].ed[j]<<' ';
            }
            cout<<'\n';
        }
        */
        vector<int>rd;
        for(int i=1;i<=n;i++){
            if(sg[i].v){
                rd.push_back(i);
            }
        }
        rt=rd[myrand()%rd.size()];
        for(int i=1;i<=n;i++){
            sg[i].fa=-1;
            sg[i].col=0;
        }
        vector<pt>sv;
        

        auto dfs = [&](auto self, int x) -> void {
            int col=1;
            if(sg[x].ed.size()>=3)col=0;
            for(int i=0;i<sg[x].ed.size();i++){
                int y=sg[x].ed[i];

                if(sg[x].fa==y){
                    continue;
                }
                sg[y].fa=x;
                self(self,y);
                if(sg[y].col)col=0;
            }
            sg[x].col=col;
            if(col==1){
                op[opcnt].push_back(x);
                if(sg[x].ed.size()==2){
                    int y=sg[x].ed[0],z=sg[x].ed[1];
                    sv.push_back({y,z});
                }
                sg[x].v=0;
            }
        };

        dfs(dfs,rt);
        for(int i=1;i<=n;i++){
            
            for(int j=0;j<sg[i].ed.size();j++){
                int flag=1;
                for(int k=0;k<op[opcnt].size();k++){
                    if(sg[i].ed[j]==op[opcnt][k]||i==op[opcnt][k]){
                        flag=0;
                    }
                }
                if(flag)
                sv.push_back({i,sg[i].ed[j]});
            }
        }
        for(int i=1;i<=n;i++)sg[i].ed.clear();
        for(int i=0;i<sv.size();i++){
            add(sv[i].x,sv[i].y);
        }
        for(int i=1;i<=n;i++){
            sort(sg[i].ed.begin(),sg[i].ed.end());
            sg[i].ed.resize(unique(sg[i].ed.begin(),sg[i].ed.end())-sg[i].ed.begin());
            
        }
        /*
        cout<<"ed:"<<opcnt<<'\n';
        for(int i=1;i<=n;i++){
            cout<<i<<' ';
            cout<<sg[i].ed.size()<<' '<<'Q';
            for(int j=0;j<sg[i].ed.size();j++){
                cout<<sg[i].ed[j]<<' ';
            }
            cout<<'\n';
        }
        */
        ndcnt-=op[opcnt].size();
    }
    assert(opcnt<=11);
    cout<<opcnt<<'\n';
    for(int i=1;i<=opcnt;i++){
        cout<<op[i].size()<<' ';
        for(int j=0;j<op[i].size();j++){
            cout<<op[i][j]<<' ';
        }
        cout<<'\n';
    }
}
    

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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

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

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 254 337 248 189 330 498 193 89 125 93 327 417 278 312 310 463 478 185 143 253 272 277 91 404 53 68 64 424 78 458 72 5 177 156 218 48 433 137 256 245 329 333 146 131 391 94 237 413 406 65 431 441 233 377 168 118 242 298 259 285 35 63 336 344 260 483 494 465 428 386 313 186 109 414 79 191 440 34...

result:

ok 

Test #4:

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

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

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 497 262 297 341 357 356 234 113 471 263 427 260 278 362 370 304 3 5 463 313 391 73 418 472 361 41 282 374 142 90 404 392 333 412 315 44 401 325 355 250 67 107 318 274 66 478 275 112 170 196 277 33 375 272 51 32 383 123 239 197 187 420 233 307 402 439 168 329 181 205 344 445 139 403 365 221 474...

result:

ok 

Test #6:

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

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

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 463 344 167 429 366 225 430 150 43 371 486 27 178 276 112 252 422 77 415 83 61 172 369 437 223 411 402 180 347 38 418 79 32 202 469 6 407 266 318 284 286 317 433 64 311 81 476 255 8 466 393 164 319 197 248 484 195 388 392 497 439 94 295 52 278 412 316 351 498 152 350 41 244 166 160 47 253 322 ...

result:

ok 

Test #8:

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

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

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

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

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 387 473 45 221 96 394 224 491 466 351 185 207 299 13 339 318 326 449 11 19 412 82 18 61 309 471 359 109 270 230 244 38 441 92 312 486 306 323 106 498 183 324 367 357 167 430 319 440 10 328 277 194 288 158 268 420 219 119 314 105 263 44 451 467 168 98 429 95 375 261 247 149 256 472 68 384 272 7...

result:

ok 

Test #12:

score: -100
Runtime Error

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:


result: