传送门


神仙题……

考虑计算三个部分:1、\(n\)个点的森林的数量,这个是期望的分母;2、\(n\)个点的所有森林中存在最短路的点对的最短路径长度之和;3、\(n\)个点的所有路径中存在最短路的点对的个数之和,这个是用来计算需要取到\(m\)的点对的数量。

对于1,这个就直接对着树的数量的EGF做多项式exp即可。因为点之间有序所以用EGF,\(n\)个点的树的数量由Cayley定理就是\(n^{n-2}\)。

对于3,考虑枚举一个连通块大小,那么这种连通块大小的所有树的存在最短路的点对之和就是\(n^{n-2} \binom{n}{2}\)。然后我们需要求这个连通块在哪些森林中出现过,我们就需要拼一个森林进去,所以直接拿这个的EGF跟1中求出来的多项式做一个卷积就可以了。

对于2,发现那个平方不是很好搞,于是可以考虑平方的组合意义,实际上就是在\(i,j\)路径上的边上有序地任取两条边。我们可以考虑先枚举两条边,然后再考虑这两条边会在哪些路径上做出贡献。注意到两条不重合的边会把树分为三个连通块,而两条重合的边会分为两个连通块,那么我们可以再次交换求和顺序,先枚举两个/三个连通块,然后考虑如何在这两个/三个连通块之间连边、选择\(i,j\)。

考虑三个连通块的情况,两个连通块的情况类似。注意到如果三个连通块大小为\(a_1,a_2,a_3\),边固定为1连向2、2连向3,\(i\)在1、\(j\)在3,那么连边的方式就有\(a_1a_2 \times a_2a_3\)种,选择起点的方式有\(a_1\)种,选择终点的方式有\(a_3\)种,那么总贡献就是\(a_1^2a_2^2a_3^2\),只和连通块大小有关。不难再构造一个生成函数,每个位置表示大小为\(x\)的连通块的贡献,那么这个生成函数的平方和三次方就是选择两个连通块和三个连通块的方案。

那么我们就只要考虑这个连通块会出现在哪些森林里,和3过程一样卷上1求出来的多项式就可以了。

值得注意的一点是,求2的过程中,因为有序枚举这两条边是存在两种方案的,所以选择三个连通块的所有方案需要乘上2;在求2的过程中,点对\(i,j\)和点对\(j,i\)都会被计算,所以2的所有答案还要除以2。

代码

Gym102028G Shortest Paths on Random Forests 生成函数、多项式Exp的更多相关文章

  1. CF Gym102028G Shortest Paths on Random Forests

    传送门 这题要求的期望,就是总权值(所有不在同一个连通块点对的贡献+同一连通块点对的贡献)/总方案(森林个数) 先求森林个数,森林是由一堆树组成的,而根据purfer序列,一棵\(n\)个点的有标号的 ...

  2. CF Gym 102028G Shortest Paths on Random Forests

    CF Gym 102028G Shortest Paths on Random Forests 抄题解×1 蒯板子真jir舒服. 构造生成函数,\(F(n)\)表示\(n\)个点的森林数量(本题都用E ...

  3. Luogu4389 付公主的背包(生成函数+多项式exp)

    显然构造出生成函数,对体积v的物品,生成函数为1+xv+x2v+……=1/(1-xv).将所有生成函数乘起来得到的多项式即为答案,设为F(x),即F(x)=1/∏(1-xvi).但这个多项式的项数是Σ ...

  4. LOJ6077「2017 山东一轮集训 Day7」逆序对 (生成函数+多项式exp?朴素DP!)

    题面 给定 n , k n,k n,k ,求长度为 n n n 逆序对个数为 k k k 的排列个数,对 1 e 9 + 7 \rm1e9+7 1e9+7 取模. 1 ≤ n , k ≤ 100   ...

  5. LuoguP4389 付公主的背包【生成函数+多项式exp】

    题目背景 付公主有一个可爱的背包qwq 题目描述 这个背包最多可以装10^5105大小的东西 付公主有n种商品,她要准备出摊了 每种商品体积为Vi,都有10^5105件 给定m,对于s\in [1,m ...

  6. P4389-付公主的背包【生成函数,多项式exp】

    正题 题目链接:https://www.luogu.com.cn/problem/P4389 题目大意 \(n\)种物品,第\(i\)种大小为\(v_i\),数量无限.对于每个\(s\in[1,m]\ ...

  7. Bagging决策树:Random Forests

    1. 前言 Random Forests (RF) 是由Breiman [1]提出的一类基于决策树CART的Bagging算法.论文 [5] 在121数据集上比较了179个分类器,效果最好的是RF,准 ...

  8. 以Random Forests和AdaBoost为例介绍下bagging和boosting方法

    我们学过决策树.朴素贝叶斯.SVM.K近邻等分类器算法,他们各有优缺点:自然的,我们可以将这些分类器组合起来成为一个性能更好的分类器,这种组合结果被称为 集成方法 (ensemble method)或 ...

  9. 随机森林——Random Forests

    [基础算法] Random Forests 2011 年 8 月 9 日 Random Forest(s),随机森林,又叫Random Trees[2][3],是一种由多棵决策树组合而成的联合预测模型 ...

随机推荐

  1. 洛谷 P5146 最大差值 题解

    P5146 最大差值 题目描述 HKE最近热衷于研究序列,有一次他发现了一个有趣的问题: 对于一个序列\(A_1,A_2\cdots A_n\)​,找出两个数\(i,j\),\(1\leq i< ...

  2. 菜鸟学IT之豆瓣爬取初体验

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3159 可以用pandas读出之前保存的数据: newsdf = pd.re ...

  3. assert(0)的作用

    捕捉逻辑错误.可以在程序逻辑必须为真的条件上设置断言.除非发生逻辑错误,否则断言对程序无任何影响.即预防性的错误检查,在认为不可能的执行到的情况下加一句ASSERT(0),如果运行到此,代码逻辑或条件 ...

  4. em,rem,px的区别,以及实现原理?

    px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.em是相对长度单位.相对于当前对象内文本的字体尺寸举个例子:比如说当前容器`font-size:16px;`则`1em`就 ...

  5. Spring Boot-intellij idea导入方式搭建SpringBoot

    Spring Boot概念 从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用.简便起见,该框架也提供了命令行界面,它可以用来运行和测试Boot应用.框架的发布版 ...

  6. 堆排序Heapsort的Java和C代码

    Heapsort排序思路 将整个数组看作一个二叉树heap, 下标0为堆顶层, 下标1, 2为次顶层, 然后每层就是"3,4,5,6", "7, 8, 9, 10, 11 ...

  7. Docker搭建ES集群

    Spring Boot连接ES,spring-boot-starter-data-elasticsearch. 必须为集群方式!否则报错! 报错: None of the configured nod ...

  8. 用Python实现的Internet电话软件(P2P-SIP)<开源>

    本博客为本人学习笔记,代码出自GitHub:https://github.com/theintencity/p2p-sip 由于GitHub原著为英文,且相当的啰嗦,本文为翻译内容并去除其啰嗦的部分 ...

  9. (转载)CNN 模型所需的计算力(FLOPs)和参数(parameters)数量计算

    FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度.是一个衡量硬件性能的指标. FLOPs:注意s小写,是f ...

  10. EasyDSS RTMP流媒体服务器基于RTMP拉模式和转推模式搭建公网全平台全终端直播集群的方案

    近期,我们有一位EasyDSS流媒体用户在需求中提出:如何搭建一个用户量巨大的讲座直播,提供给普通用户免费观看,每天上午和下午分别有几场讲座同时直播,持续几天时间. 推荐方案 ★ 由于甲方是中国移动运 ...