zoukankan      html  css  js  c++  java
  • luogu_4430 luogu_4981【题解】 Cayley定理

      两道题其实是一样的,都是求有根树个数,只不过系数不一样。

      Cayley定理:n 个节点的带标号的形态不同的无根树有 n ^(n-2)个,然后对于每棵树,生成方式有 ( n - 1 ) ! 种。

      根据这个定理就可以解决这两个问题。

      P4430:https://www.luogu.org/problemnew/show/P4430

        题意:n个点,求构成生成树不同连接方式的方案数。就为n ^(n-2)* ( n - 1 )! 。

        不用快速幂就可以求解。 代码如下。

    #include<bits/stdc++.h>
    using namespace std;
    const int mod=9999991;
    int n;
    long long ans=1;
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n-1;i++) ans=ans*i%mod;
        for(int i=1;i<=n-2;i++) ans=ans*n%mod;
        printf("%lld",ans);
        return 0;
    }

      p4981https://www.luogu.org/problemnew/show/P4981

        题意:n个点,1到 n 分别为根的带标号的形态不同的无根树。为 n*n ^(n-2)也就是 n ^ (n-1) 。

        代码如下。

    #include<bits/stdc++.h>
    using namespace std;
    const int mod=1e9+9;
    int t;long long n;
    inline long long qp(long long a,long long b){
        long long ans=1;
        while(b){
            if(b&1) ans=ans*a%mod;
            a=a*a%mod;
            b>>=1;
        }
        return ans%mod;
    }
    int main()
    {
        scanf("%d",&t);
        while(t--){
            scanf("%lld",&n);
            printf("%lld
    ",qp(n,n-1)%mod);
        }
        return 0;
    }
  • 相关阅读:
    ssh事务配置
    使用注解实现事务处理
    c3p0、dbcp<转>
    添加业务层和事务机制
    使用spring集成hibernate
    使用Adivisor配置增强处理
    aop注解
    Spring IoC实现解耦合
    python console的命令执行
    python格式化输出
  • 原文地址:https://www.cnblogs.com/ChrisKKK/p/10841355.html
Copyright © 2011-2022 走看看