传送门


神仙题……

考虑计算三个部分: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. 初识 Python 作业及默写

    1.简述变量量命名规范 2.name = input(“>>>”) name变量是什么数据类型? 3.if条件语句的基本结构? 4.用print打印出下面内容: 文能提笔安天下, 武 ...

  2. Handsontable vue如何实现在线编辑excal

    官网地址:https://handsontable.com/ 1.实现效果 2.安装 import { HotTable } from '@handsontable/vue' import Hands ...

  3. [SNOI2019]纸牌

    传送门 Description 有一副纸牌.牌一共有\(n\)种,分别标有 \(1,2,...,n\),每种有\(C\)张.故这副牌共有\(nC\)张. 三张连号的牌(\(i,i+1,i+2\))或三 ...

  4. GitHub如何删除一个代码仓库

    进入GitHub之后,点击“your repositories”查看所有的代码仓库. 在代码仓库中选择一个需要删除的,进入其详情页 在详情页中找到“setting”设置,下拉至最后可以看到删除选项. ...

  5. Java 8 创建 Stream 的 10 种方式,我保证你受益无穷!

    之前栈长分享过 Java 8 一系列新特性的文章,其中重点介绍了 Stream. 获取上面这份 Java 8~12 系列新特性干货文章,请在微信搜索关注微信公众号:Java技术栈,在公众号后台回复:j ...

  6. go 练习:HTTP 处理

    这篇文章只是联系go指南时的笔记吧. package main import ( "fmt" "log" "net/http" ) type ...

  7. 记一次edusoho问题

    问题描述:Edusoho如何迁移到本地windows或另外一台Linux服务器上 解决问题步骤: 1.参考官方文档官方文档地址如下:http://www.qiqiuyu.com/my/course/3 ...

  8. CSS背景和精灵图

    如何设置背景图片? 1.在CSS中有个叫做background-image:url():的属性,就是专门用于设置背景图片的. 2.注意点: 1)图片的地址必须放在url()中,图片的地址可以是本地的地 ...

  9. BASE64使用场景

    BASE64使用场景 Base64就是一种基于64个可打印字符来表示二进制数据的方法. Base64编码是从二进制到字符的过程. 在项目中,将报文进行压缩.加密后,最后一步必然是使用base64编码, ...

  10. Learning Context Graph for Person Search

    Learning Context Graph for Person Search 2019-06-24 09:14:03 Paper:http://openaccess.thecvf.com/cont ...