zoukankan      html  css  js  c++  java
  • bzoj1430: 小猴打架(prufer序列)

    1430: 小猴打架

    题目:传送门


    简要题意:

       n只互不相识的猴子打架,打架之后就两两之间连边(表示已经相互认识),只有不认识(朋友的朋友都是朋友)的两只猴子才会打架。最后所有的猴子都会连成一棵树,也就是经过n-1次打架,求不同的打架方案数。


    题解:

       我们需要一个强大的方法:prufer序列。。。

       这个东西很牛逼!!!

       简单来说就是把一颗n个节点的无根树,转换为n-2的一个序列

       序列和树之间两两可互相转化,且是一一对应的。

       具体%%%神犇:prufer序列 


    思考niang小时,代码niang分钟:

     1 #include<cstdio>
     2 #include<cstring>
     3 using namespace std;
     4 typedef long long LL;
     5 const LL mod=9999991LL;
     6 int n;
     7 int main()
     8 {
     9     LL ans=1;
    10     scanf("%d",&n);
    11     for(int i=1;i<=n-2;i++)ans=ans*n%mod;
    12     for(LL i=1;i<n;i++)ans=ans*i%mod;
    13     printf("%lld
    ",ans);
    14     return 0;
    15 }
  • 相关阅读:
    Kettle学习(2)
    kettle学习(1)
    Quartz在Spring中的使用
    JVM垃圾收集简介
    快速排序

    20190827最新论文
    GNN
    Multimodal Machine Learning
    Wasserstein距离 及两多元高斯分布间的W距离
  • 原文地址:https://www.cnblogs.com/CHerish_OI/p/8323505.html
Copyright © 2011-2022 走看看