zoukankan      html  css  js  c++  java
  • 【bzoj1430】小猴打架 Prufer序列

    题目描述

    给出 $n$ 个点,每次选择任意一条边,问这样 $n-1$ 次后得到一棵树的方案数是多少。

    输入

    一个整数N。

    输出

    一行,方案数mod 9999991。

    样例输入

    4

    样例输出

    96


    题解

    Prufer序列

    答案完全可以看作两部分:生成一棵树的方案数*最终的树的个数。

    生成一棵树的方案数即边的全排列树 $(n-1)!$ 。

    最终的树的个数即Prufer序列的结论 $n^{n-2}$ ,因为 $n-2$ 个位置每个位置均有 $n$ 个选择。

    本题 $n$ 较小,直接暴力计算即可。

    #include <cstdio>
    int main()
    {
    	long long n , i , ans = 1;
    	scanf("%lld" , &n);
    	for(i = 1 ; i <= n - 2 ; i ++ ) ans = ans * n % 9999991;
    	for(i = 1 ; i <= n - 1 ; i ++ ) ans = ans * i % 9999991;
    	printf("%lld
    " , ans);
    	return 0;
    }
    

     

  • 相关阅读:
    洛谷 P6622
    洛谷 P6619
    LOJ 3188
    CF::Gym 102174G
    eJOI2017~2019
    洛谷 P6313
    洛谷 P6305
    JSOI2020 酱油记
    洛谷 P6234
    CodeForces 1334F
  • 原文地址:https://www.cnblogs.com/GXZlegend/p/8135483.html
Copyright © 2011-2022 走看看