1 条题解
-
0
自动搬运
来自洛谷,原作者为

樱初音斗橡皮
(只读)真是个有趣的世界呢搬运于
2025-08-24 22:29:51,当前版本为作者最后更新于2021-02-19 19:34:14,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题目大意:给定 点 边无向连通图,随机一个生成树,求 到 的简单路径经过点 的概率。对 取模。
数据范围:
解答:
首先很显然生成树个数可以 求出,因此求出 经过 的总生成树个数即可。
表示从 开始经过点集 到达 的路径数, 表示从 开始经过点集 到达 的路径数, 表示将 之外的点全部缩成一个点之后的生成树个数。则最终答案为 $\displaystyle Ans=\sum_{S_1\cap S_2=\{z\}}f_{z,S_1}\cdot g_{z,S_2}\cdot h_{S-S_1-S_2}$。
可以用朴素的 算法或 子集卷积实现。
的计算方式::;$f_{i,S}=[i\in S]\sum_{j\in S}e(j,i)\cdot f_{j,S-\{i\}}$。 的计算方式类似。
现在我们面临了一个问题:对每一个 求出 。
朴素实现: 高斯消元。
精细实现:优化高斯消元的过程。考虑新加入一个点对行列式的改变其实是加入一行一列,在高斯消元的过程中记录行变换的步骤(),则每次加入一行一列都至多多出 次行变换,可以 更新。这样即可用 推出 的答案。
时间复杂度 。
(实际上由于常数原因,后者不一定跑得过前者,而 的算法也可以通过,带 的算法能拿 分。欢迎大神写出一些小常数的代码,然后把这题加强一下。)
- 1
信息
- ID
- 6404
- 时间
- 1500ms
- 内存
- 500MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者