这题的时候发现题解里有提到\(generalizations\ of\ Cayley's\ formula\)的,当场懵逼,Wikipedia里也就带到了一下,没有解释怎么来的,然后下面贴了篇论文

大概就是\(n\)个点\(k\)个联通块的森林,\(1,2,\cdots,k\)属于不同的联通块,这样不同的方案数共有\(k\cdot n^{n-k-1}\)种。

我自己用\(Prüfer\)序列脑补了半天没搞懂怎么来的,始终觉得感性理解是\(n^{n-k}\),然后就去看了下那个证明。

用\(F(n,k)\)表示那个方案数(\(n,k\)与前面意义相同),我们要证明
\[F(n,k)=k\cdot n^{n-k-1} \;\;\;\;\;\;(1)\]
证明基于下面这个公式,若\(n>1\)且\(1 \leq k \leq n\)则
\[F(n,k)=\sum_{j=0}^{n-k} {n-k \choose j} F(n-1,k+j-1) \;\;\;\;\;\;(2)\]
其中\(F(1,1)=1,F(n,0)=0(n \geq 1)\)
要证明上面的递推式,考虑一个\(n\)个点\(k\)个联通块,\(1,2,\cdots,k\)属于不同的联通块的森林,在这个森林中,一号节点可能和\(\{k+1,k+2,\cdots,n\}\)的任何子集相连,假设连了\(j\)个点,那么方案数就是\(n-k \choose j\),然后删掉一号点,此时有\(n-1\)个点,\(k+j-1\)个联通块,我们枚举\(j\),就得到了上面的式子。

再用一下数学归纳法就可以把(2)式变成(1)式了
当\(n=1\)时,两式显然相等
当\(n>1\)时,若\(F(n-1,i)=i \cdot (n-1)^{n-i-2}\),则由(2)可得
\[F(n,i)=\sum_{j=0}^{n-i} {n-i \choose j}(i+j-1)(n-1)^{n-i-j-1}=i \cdot n^{n-i-1}\;\;\;\;(3)\]
用一下二项式定理就行。


博主有话说:不得不承认这篇博文是烂尾,毕竟还不是很懂二项式定理QAQ,但感觉这个证明还挺精巧的。

Codeforces 1109D: generalizations of Cayley's formula证明的更多相关文章

  1. Prufer codes与Generalized Cayley's Formula学习笔记

    \(Prufer\)序列 在一棵\(n\)个点带标号无根树里,我们定义这棵树的\(Prufer\)序列为执行以下操作后得到的序列 1.若当前树中只剩下两个节点,退出,否则执行\(2\) 2.令\(u\ ...

  2. Prufer codes与Generalized Cayley's Formula

    Prufer序列 在一棵n个节点带标号树中,我们认为度数为1的点为叶子.n个点的树的Prufer序列是经过下面流程得到的一个长度为n-2的序列. 1.若当前树中只剩下两个点,退出,否则执行2. 2.找 ...

  3. Codeforces 1109D. Sasha and Interesting Fact from Graph Theory

    Codeforces 1109D. Sasha and Interesting Fact from Graph Theory 解题思路: 这题我根本不会做,是周指导带飞我. 首先对于当前已经有 \(m ...

  4. Codeforces Round #801 (Div. 2) C(规律证明)

    Codeforces Round #801 (Div. 2) C(规律证明) 题目链接: 传送门QAQ 题意: 给定一个\(n * m\)的矩阵,矩阵的每个单元的值为1或-1,问从\((1,1)\)开 ...

  5. Codeforces Gym 100610 Problem E. Explicit Formula 水题

    Problem E. Explicit Formula Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/10 ...

  6. codeforces 1269D. Domino for Young (二分图证明/结论题)

    链接:https://codeforces.com/contest/1269/problem/D 题意:给一个不规则的网格,在上面放置多米诺骨牌,多米诺骨牌长度要么是1x2,要么是2x1大小,问最多放 ...

  7. Codeforces 1109D. Sasha and Interesting Fact from Graph Theory 排列组合,Prufer编码

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF1109D.html 题意 所有边权都是 [1,m] 中的整数的所有 n 个点的树中,点 a 到点 b 的距离 ...

  8. Codeforces 1109D Sasha and Interesting Fact from Graph Theory (看题解) 组合数学

    Sasha and Interesting Fact from Graph Theory n 个 点形成 m 个有标号森林的方案数为 F(n, m) = m * n ^ {n - 1 - m} 然后就 ...

  9. Sasha and Interesting Fact from Graph Theory CodeForces - 1109D (图论,计数,Caylay定理)

    大意: 求a->b最短路长度为m的n节点树的个数, 边权全部不超过m 枚举$a$与$b$之间的边数, 再由拓展$Caylay$定理分配其余结点 拓展$Caylay$定理 $n$个有标号节点生成k ...

随机推荐

  1. Redis开发与运维:linux安装

    Linux 安装 我的系统是inux 系统,官网下载 https://redis.io/download redis-5.0.5.tar.gz 解压: 编译安装: 官网和文档说得已经很清楚了,现在就执 ...

  2. FFmpeg(三) 编解码相关函数理解

    一.编解码基本流程 主要流程: 打开视频解码器(音频一样) 软解码.硬解码 进行编解码 下面先来看打开视频解码器 ①avcodec_register_all()//初始化解码 ②先找到解码器. 找解码 ...

  3. link 和 @import 的区别是什么?

    link语法结构: <link href="url" rel="stylesheet" type="text/css"> @im ...

  4. spring源码分析系列5:ApplicationContext的初始化与Bean生命周期

    回顾Bean与BeanDefinition的关系. BeanFactory容器. ApplicationContext上下文. 首先总结下: 开发人员定义Bean信息:分为XML形式定义:注解式定义 ...

  5. PHP array_reduce

    1.函数的作用:用函数迭代数组的所有元素 2.函数的参数: @params  array  $array   用于迭代的数组 @params  callable  $callback  迭代的函数 @ ...

  6. ‎Cocos2d-x 学习笔记(15.4) EventDispatcher 事件分发具体逻辑 dispatchEventToListeners函数

    dispatchEvent(Event* event)方法在对事件对应的监听器进行重新排序后,进行事件分发操作.具体操作由dispatchEventToListeners方法执行. 该方法声明: vo ...

  7. NServiceBus+Saga开发分布式应用

    前言       当你在处理异步消息时,每个单独的消息处理程序都是一个单独的handler,每个handler之间互不影响.这时如果一个消息依赖另一个消息的状态呢? 这时业务逻辑怎么处理?       ...

  8. 案例_(单线程)使用xpath爬取糗事百科

    案例_(单线程)使用xpath爬取糗事百科 步骤如下: 首先通过xpath插件找出我们要爬取的信息的匹配规则 url = "https://www.qiushibaike.com/8hr/p ...

  9. 压敏电阻的保护作用—NDF达孚电子科技

    压敏电阻是常见的电子元器件之一,它的保护作用被大家熟知和运用.压敏电阻的主要用于在电路承受过压时进行电压钳位,吸收多余的电流以保护灵敏器件.压敏电阻的导电特性随着施加电压的变化呈非线性变化,它能保护电 ...

  10. java大数运算(讲解)

    在算法竞赛或者面试中我们经常遇到大数问题,例如求一个很大的阶层,大数加法等等. 住在这种情况下我们用常规解法(使用long long或long long int)肯定是不行的, 而我们自己用c/c++ ...