矩阵树定理
_beginend
这个作者很懒,什么都没留下…
展开
-
【洛谷 P6624 [省选联考 2020 A 卷] 作业题】【矩阵树定理】
题意给一个nnn个点mmm条边的简单无向图,定义一棵生成树的权值为其边权和与边权gcd\gcdgcd的乘积。求所有生成树的权值和。n≤30,wi≤152501n\le 30,w_i\le 152501n≤30,wi≤152501分析将gcd\gcdgcd拆成欧拉函数求和的形式,得到ans=∑wφ(w)∗[所有边权都是w倍数的生成树权值和]ans=\sum_w\varphi(w)*[所有边权都是w倍数的生成树权值和]ans=w∑φ(w)∗[所有边权都是w倍数的生成树权值和]问题转化为如何求所原创 2020-06-24 23:09:17 · 359 阅读 · 1 评论 -
bzoj 4639 期望 矩阵树定理
题意有一个n个点m条边的图,每条边有长度和美丽值。求该图的所有最小生成树中美丽值的和的期望。满足长度相同的边的数量不超过30。n≤10000,m≤200000n\le10000,m\le200000n≤10000,m≤200000分析显然长度不同的边的贡献是独立的。那么我们可以把每一种距离的边拿出来,对每一个连通块分别处理。枚举同一个连通块中的每一条边,用矩阵树定理算出一定包含这条边...原创 2019-07-03 09:12:25 · 276 阅读 · 3 评论 -
牛客网Wannafly挑战赛23 F-计数 矩阵树定理+拉格朗日插值法
题意给出一个n个点m条边的带权无向图,问有多少棵生成树满足边权和模k等于0,答案模p输出。 n,k≤100,p≤109,p为质数且满足k≡1(modp)n,k≤100,p≤109,p为质数且满足k≡1(modp)n,k\le100,p\le10^9,p为质数且满足k\equiv1\pmod p。分析一种直观的套路就是把每条边的边权看成是xwxwx^w,然后做矩阵树定理,最后得出来...原创 2018-09-09 16:13:42 · 421 阅读 · 0 评论 -
LibreOJ #6044.「雅礼集训 2017 Day8」共 矩阵树定理
题意问有多少棵n个节点的树满足深度为奇数的点恰好有k个。 n≤500000n≤500000n\le500000分析不难发现答案就是S(n−k,k)∗Ck−1n−1S(n−k,k)∗Cn−1k−1S(n-k,k)*C_{n-1}^{k-1} 其中S(n,m)S(n,m)S(n,m)表示一边有nnn个点另一边有mmm个点的二分完全图的生成树个数。 而又因为S(n,m)=nm−1∗...原创 2018-06-25 16:02:06 · 454 阅读 · 0 评论 -
bzoj 5056: OI游戏 最短路+矩阵树定理
题意求一个带权无向图有多少不同的最短路树。 n≤50n≤50n\le50分析直接把最短路DAG建出来然后跑矩阵树定理就好了。代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm&g...原创 2018-05-24 08:44:59 · 227 阅读 · 0 评论 -
51nod 1446 限制价值树 矩阵树定理+折半搜索+容斥
题意有N个点(N=0那么这个点为定义为good。现在给这N个点间连上N-1条边,使它们构成一个生成树,定义树中的点为great点当且仅当这个点本身是good点且与其相邻的点中至少有另一个good点。树的价值等于树中所有great点的价值和。定义限制价值树是指价值不大于maxVal的树,问对给定的val[]与maxVal,一共有多少种不同的限制价格树?由于答案太大,可取 modulo 1,0原创 2018-01-16 21:53:44 · 332 阅读 · 0 评论 -
bzoj 3534: [Sdoi2014]重建 矩阵树定理
题意T国有N个城市,用若干双向道路连接。一对城市之间至多存在一条道路。 在一次洪水之后,一些道路受损无法通行。虽然已经有人开始调查道路的损毁情况,但直到现在几乎没有消息传回。 辛运的是,此前T国政府调查过每条道路的强度,现在他们希望只利用这些信息估计灾情。具体地,给定每条道路在洪水后仍能通行的概率,请计算仍能通行的道路恰有N-1条,且能联通所有城市的概率。 1 分析显然这题可以用原创 2018-01-12 19:13:58 · 277 阅读 · 0 评论 -
bzoj 4894: 天赋 矩阵树定理求有向图生成树数量
题意给你一个有向图的邻接矩阵,求以1为根的外向生成树数量。 n<=300分析用邻接矩阵-出度矩阵后求M1,1即是答案。代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const原创 2017-12-26 15:23:03 · 1162 阅读 · 0 评论 -
CodePlus 2017 12 月赛 白金元首与独舞 矩阵树定理求有向图生成树数量
题意 分析首先如果存在环的话答案肯定为0。 那么我们把每个格子看做节点,它指向的点看做它的父亲,这样整个图就变成了一棵有k+1个连通块的森林。每个连通块的根节点要么是空节点要么是外部空间。 把每个空点向其四个方向连边,问题就变成了求无向图的内向树生成树数量。 有向图的生成树计数也可以用矩阵树定理。不同之处在于,如果是外向树的话就是入度矩阵-邻接矩阵,内向树的话就是出度矩阵-邻接矩阵。代码#i原创 2017-12-26 14:43:03 · 620 阅读 · 0 评论 -
bzoj 4031: [HEOI2015]小Z的房间 矩阵树定理
题意给出一个n*m的方阵,一些格子是空地一些是柱子。格子间的邻边看做边,问空地的生成树数量。 n<=9分析权当省选前复习一波矩阵树定理了。一开始忘了行初等变换要让行列式换符号了。代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace s原创 2017-04-20 20:43:22 · 315 阅读 · 0 评论 -
bzoj 4766: 文艺计算姬 矩阵树定理+快速幂
题意求一边是n个点一边是m个点且有n*m条边的二分图的生成树数量,答案模p。 n,m,p<=10^18分析把基尔霍夫矩阵画出来然后乱搞一下就可以得到其余子式的行列式为nm−1∗mn−1n^{m-1}*m^{n-1} 至于long long乘long long的话,用大数相乘取模黑科技即可! 具体看代码。代码#include<iostream>#include<cstdio>#include原创 2017-04-06 15:39:20 · 388 阅读 · 0 评论 -
bzoj 4596: [Shoi2016]黑暗前的幻想乡 矩阵树定理+容斥原理
题意有n个点,n-1个公司,每个公司可以生产一些固定的边。问每一条边都让不同的公司来制造的生成树数量是多少。 n<=17分析一直在想状压了,没想到矩阵树定理和容斥。按照某大神说的,看到计数想容斥。 那么我们就来想容斥吧! 那么总方案就相当于任意选的方案-1个公司不选的方案+2个公司不选的方案。。。。 那么就可以用搜索来容斥,算方案的时候可以用矩阵树定理来算。算行列式的时候由于是整数间的运算,原创 2017-04-06 15:18:43 · 665 阅读 · 0 评论