#1594. 2598. [IOI2011]garden

2598. [IOI2011]garden

#2598. [IOI2011]garden

题目描述

植物学家 Somhed 带着几组学生去泰国最大的热带花园游玩。这个花园中有 N 个喷泉(编号为0, 1, …, N-1)和 M 条小路。每条小路连接一对不同的喷泉,两个喷泉间最多只有一条小路,小路是可以双向行走的。从任意一个喷泉出发至少有一条小路。每条小路的美丽程度决定了Somhed 选择走该条小路的优先程度。每组学生可以从任何一个喷泉出发。 在任何一个喷泉,Somhed 和他的学生们会选择最美丽的一条小路离开该喷泉,除非最美丽的这条小路是他们刚刚走过的,且还有其它小路可走。在这种情况下,他们会选择第二美丽的小路离开该喷泉。当然,如果没有第二美丽的小路可选,他们会选择刚刚走过的小路
再走回去。注意,对于Somhed 来说没有两条小路是同样美丽的。
Somhed 的学生们对小路的美丽与否不感兴趣,他们喜欢在喷泉 P 旁边的豪华餐厅吃午饭。Somhed 知道他的学生在走过恰好 K 条小路后会感觉饥饿,当然,对于不同组的学生K 可以不同。Somhed 想知道在下列条件下,对于每组学生有多少条不同的路径可选。
每组可以从任意喷泉出发;
但是接下来的路径必须按照上面描述的规则进行选择;
每组必须在恰好走过 K 条小路后到达喷泉 P 。

注意:他们在最终到达喷泉P之前可能曾经到过喷泉 P。
给定喷泉和小路的信息,以及 Q 个不同的 K,你要回答对于每个 K 来说, 有多少条不同的
路径可供候选。
写一个函数count_routes(N,M,P,R,Q,G),该函数的参数如下:
N - 喷泉的数目。喷泉从 0 到 N-1 编号。
M - 小路的数目。小路从 0 到 M-1编号。所有小路按照其美丽程度从大到小的
顺序给出,即对于 0 ≤ i < M-1, 小路 i 比小路 i+1 更美丽。
P - 豪华餐厅所在的喷泉编号。
R - 描述小路的二维数组。对于 0 ≤ i < M, 小路 i 连接喷泉 R[i][0] 和喷泉
R[i][1]。 再次提醒:每条小路连接两个不同的喷泉,两个喷泉间最多只有一条小
路。
Q - 学生的组数。
G - 一个一维的整数数组,包含 Q 个不同的 K。对于 0 ≤ i < Q,G[i]表示第i 组
学生对应的K,即第 i 组学生经过K 条小路后要到达喷泉P。
对于 0 ≤ i < Q,你的函数必须给出可能的路径数目,满足第i 组学生在到达喷泉 P 时恰好
走过 G[i]条小路。对于第 i 组学生,你的函数必须调用函数 answer(X) 来给出可能的路径的
数目 X。答案给出的顺序必须和问题给出的顺序相同。如果没有合适的路径,你的函数应该
调用 answer(0)。

输入格式

![image](file://1(2).jpg)

![image](file://2(1).jpg)

输出格式

样例

样例输入

780 780 0  

1 0  

0 2  

2 3  

3 1  

4 1  

5 4  

6 5  

7 6  

8 7  

9 8  

10 9  

11 10  

12 11  

13 12  

14 13  

15 14  

16 15  

17 16  

18 17  

19 18  

20 19  

21 20  

22 21  

23 22  

24 23  

25 24  

26 25  

27 26  

28 27  

29 28  

30 29  

31 30  

32 31  

33 32  

34 33  

35 34  

36 35  

37 36  

38 37  

39 38  

40 39  

41 40  

42 41  

43 42  

44 43  

45 44  

46 45  

47 46  

48 47  

49 48  

50 49  

51 50  

52 51  

53 52  

54 53  

55 54  

56 55  

57 56  

58 57  

59 58  

60 59  

61 60  

62 61  

63 62  

64 63  

65 64  

66 65  

67 66  

68 67  

69 68  

70 69  

71 70  

72 71  

73 72  

74 73  

75 74  

76 75  

77 76  

78 77  

79 78  

80 79  

81 80  

82 81  

83 82  

84 83  

85 84  

86 85  

87 86  

88 87  

89 88  

90 89  

91 90  

92 91  

93 92  

94 93  

95 94  

96 95  

97 96  

98 97  

99 98  

100 99  

101 100  

102 101  

103 102  

104 103  

105 104  

106 105  

107 106  

108 107  

109 108  

110 109  

111 110  

112 111  

113 112  

114 113  

115 114  

116 115  

117 116  

118 117  

119 118  

120 119  

121 120  

122 121  

123 122  

124 123  

125 124  

126 125  

127 126  

128 127  

129 128  

130 129  

131 130  

132 131  

133 132  

134 133  

135 134  

136 135  

137 136  

138 137  

139 138  

140 139  

141 140  

142 141  

143 142  

144 143  

145 144  

146 145  

147 146  

148 147  

149 148  

150 149  

151 150  

152 151  

153 152  

154 153  

155 154  

156 155  

157 156  

158 157  

159 158  

160 159  

161 160  

162 161  

163 162  

164 163  

165 164  

166 165  

167 166  

168 167  

169 168  

170 169  

171 170  

172 171  

173 172  

174 173  

175 174  

176 175  

177 176  

178 177  

179 178  

180 179  

181 180  

182 181  

183 182  

184 183  

185 184  

186 185  

187 186  

188 187  

189 188  

190 189  

191 190  

192 191  

193 192  

194 193  

195 194  

196 195  

197 196  

198 197  

199 198  

200 199  

201 200  

202 201  

203 202  

204 203  

205 204  

206 205  

207 206  

208 207  

209 208  

210 209  

211 210  

212 211  

213 212  

214 213  

215 214  

216 215  

217 216  

218 217  

219 218  

220 219  

221 220  

222 221  

223 222  

224 223  

225 224  

226 225  

227 226  

228 227  

229 228  

230 229  

231 230  

232 231  

233 232  

234 233  

235 234  

236 235  

237 236  

238 237  

239 238  

240 239  

241 240  

242 241  

243 242  

244 243  

245 244  

246 245  

247 246  

248 247  

249 248  

250 249  

251 250  

252 251  

253 252  

254 253  

255 254  

256 255  

257 256  

258 257  

259 258  

260 259  

261 260  

262 261  

263 262  

264 263  

265 264  

266 265  

267 266  

268 267  

269 268  

270 269  

271 270  

272 271  

273 272  

274 273  

275 274  

276 275  

277 276  

278 277  

279 278  

280 279  

281 280  

282 281  

283 282  

284 283  

285 284  

286 285  

287 286  

288 287  

289 288  

290 289  

291 290  

292 291  

293 292  

294 293  

295 294  

296 295  

297 296  

298 297  

299 298  

300 299  

301 300  

302 301  

303 302  

304 303  

305 304  

306 305  

307 306  

308 307  

309 308  

310 309  

311 310  

312 311  

313 312  

314 313  

315 314  

316 315  

317 316  

318 317  

319 318  

320 319  

321 320  

322 321  

323 322  

324 323  

325 324  

326 325  

327 326  

328 327  

329 328  

330 329  

331 330  

332 331  

333 332  

334 333  

335 334  

336 335  

337 336  

338 337  

339 338  

340 339  

341 340  

342 341  

343 342  

344 343  

345 344  

346 345  

347 346  

348 347  

349 348  

350 349  

351 350  

352 351  

353 352  

354 353  

355 354  

356 355  

357 356  

358 357  

359 358  

360 359  

361 360  

362 361  

363 362  

364 363  

365 364  

366 365  

367 366  

368 367  

369 368  

370 369  

371 370  

372 371  

373 372  

374 373  

375 374  

376 375  

377 376  

378 377  

379 378  

380 379  

381 380  

382 381  

383 382  

384 383  

385 384  

386 385  

387 386  

388 387  

389 388  

390 389  

391 390  

392 391  

393 392  

394 393  

395 394  

396 395  

397 396  

398 397  

399 398  

400 399  

401 400  

402 401  

403 402  

404 403  

405 404  

406 405  

407 406  

408 407  

409 408  

410 409  

411 410  

412 411  

413 412  

414 413  

415 414  

416 415  

417 416  

418 417  

419 418  

420 419  

421 420  

422 421  

423 422  

424 423  

425 424  

426 425  

427 426  

428 427  

429 428  

430 429  

431 430  

432 431  

433 432  

434 433  

435 434  

436 435  

437 436  

438 437  

439 438  

440 439  

441 440  

442 441  

443 442  

444 443  

445 444  

446 445  

447 446  

448 447  

449 448  

450 449  

451 450  

452 451  

453 452  

454 453  

455 454  

456 455  

457 456  

458 457  

459 458  

460 459  

461 460  

462 461  

463 462  

464 463  

465 464  

466 465  

467 466  

468 467  

469 468  

470 469  

471 470  

472 471  

473 472  

474 473  

475 474  

476 475  

477 476  

478 477  

479 478  

480 479  

481 480  

482 481  

483 482  

484 483  

485 484  

486 485  

487 486  

488 487  

489 488  

490 489  

491 490  

492 491  

493 492  

494 493  

495 494  

496 495  

497 496  

498 497  

499 498  

500 499  

501 500  

502 501  

503 502  

504 503  

505 504  

506 505  

507 506  

508 507  

509 508  

510 509  

511 510  

512 511  

513 512  

514 513  

515 514  

516 515  

517 516  

518 517  

519 518  

520 519  

521 520  

522 521  

523 522  

524 523  

525 524  

526 525  

527 526  

528 527  

529 528  

530 529  

531 530  

532 531  

533 532  

534 533  

535 534  

536 535  

537 536  

538 537  

539 538  

540 539  

541 540  

542 541  

543 542  

544 543  

545 544  

546 545  

547 546  

548 547  

549 548  

550 549  

551 550  

552 551  

553 552  

554 553  

555 554  

556 555  

557 556  

558 557  

559 558  

560 559  

561 560  

562 561  

563 562  

564 563  

565 564  

566 565  

567 566  

568 567  

569 568  

570 569  

571 570  

572 571  

573 572  

574 573  

575 574  

576 575  

577 576  

578 577  

579 578  

580 579  

581 580  

582 581  

583 582  

584 583  

585 584  

586 585  

587 586  

588 587  

589 588  

590 589  

591 590  

592 591  

593 592  

594 593  

595 594  

596 595  

597 596  

598 597  

599 598  

600 599  

601 600  

602 601  

603 602  

604 603  

605 604  

606 605  

607 606  

608 607  

609 608  

610 609  

611 610  

612 611  

613 612  

614 613  

615 614  

616 615  

617 616  

618 617  

619 618  

620 619  

621 620  

622 621  

623 622  

624 623  

625 624  

626 625  

627 626  

628 627  

629 628  

630 629  

631 630  

632 631  

633 632  

634 633  

635 634  

636 635  

637 636  

638 637  

639 638  

640 639  

641 640  

642 641  

643 642  

644 643  

645 644  

646 645  

647 646  

648 647  

649 648  

650 649  

651 650  

652 651  

653 652  

654 653  

655 654  

656 655  

657 656  

658 657  

659 658  

660 659  

661 660  

662 661  

663 662  

664 663  

665 664  

666 665  

667 666  

668 667  

669 668  

670 669  

671 670  

672 671  

673 672  

674 673  

675 674  

676 675  

677 676  

678 677  

679 678  

680 679  

681 680  

682 681  

683 682  

684 683  

685 684  

686 685  

687 686  

688 687  

689 688  

690 689  

691 690  

692 691  

693 692  

694 693  

695 694  

696 695  

697 696  

698 697  

699 698  

700 699  

701 700  

702 701  

703 702  

704 703  

705 704  

706 705  

707 706  

708 707  

709 708  

710 709  

711 710  

712 711  

713 712  

714 713  

715 714  

716 715  

717 716  

718 717  

719 718  

720 719  

721 720  

722 721  

723 722  

724 723  

725 724  

726 725  

727 726  

728 727  

729 728  

730 729  

731 730  

732 731  

733 732  

734 733  

735 734  

736 735  

737 736  

738 737  

739 738  

740 739  

741 740  

742 741  

743 742  

744 743  

745 744  

746 745  

747 746  

748 747  

749 748  

750 749  

751 750  

752 751  

753 752  

754 753  

755 754  

756 755  

757 756  

758 757  

759 758  

760 759  

761 760  

762 761  

763 762  

764 763  

765 764  

766 765  

767 766  

768 767  

769 768  

770 769  

771 770  

772 771  

773 772  

774 773  

775 774  

776 775  

777 776  

778 777  

779 778  

1  

96  

样例输出

25  

数据范围与提示