#P2598. garden

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)。

输入格式

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