矩阵树定理
文章平均质量分 92
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
【THUPC2019】找树 / findtree(FWT)(矩阵树)
传送门题解:送分题。首先求生成树肯定是矩阵树。然后我们发现这里的卷积全部都是位运算。众所周知位运算卷积的DFT可以直接考虑每一位的操作,理解的话其实就是每位表示一个维度,然后各个维度上进行各自的DFT即可。该怎么搞怎么搞。代码:#include<bits/stdc++.h>#define ll long long#define re register#defi...原创 2020-04-15 15:56:26 · 592 阅读 · 0 评论 -
【LOJ6271】「长乐集训 2017 Day10」生成树求和 加强版(循环卷积)(矩阵树)
传送门题解:拆位是肯定要拆位的。拆位之后需要求的是这一位上三进制不进位加法结果为0,1,20,1,20,1,2的分别有多少。考虑矩阵树,由于矩阵树求的是边权乘积之和,我们将三进制不进位加法转换成长度为3的循环卷积,求出ω0,ω1,ω2\omega^0,\omega^1,\omega^2ω0,ω1,ω2的点值之后直接IFWT回来,其中ω\omegaω指三次单位根。由于ω2=−ω−1\om...原创 2019-09-16 09:50:57 · 516 阅读 · 0 评论 -
【Hihocoder1512】生成树计数(矩阵树)(生成函数)(重心拉格朗日插值)
传送门题解:首先考虑kkk次方的组合意义,其实就是无序地,允许重复地选出kkk个数求乘积而已。对于边权为www的边,设其对答案的贡献的EGF为∑i=0∞(wx)ii!\sum_{i=0}^\infty \dfrac{(wx)^i}{i!}∑i=0∞i!(wx)i则答案就是这个东西求矩阵树的多项式的第kkk项系数乘上k!k!k!。所有EGF需要保留前kkk项,结果是一个nknknk次...原创 2019-09-10 19:25:43 · 233 阅读 · 1 评论 -
【题目泛做】树(矩阵树)(高斯消元)
给一棵n 个节点的树,节点分别编号为0 到n - 1。你可以通过如下的操作来修改这棵树:首先先删去树上的一条边,此时树会分裂为两个连通块,然后在两个连通块之间加上一条新的边使得它们变成一棵新的树。问有多少棵n 个节点的树可以通过对原树进行不超过k 次这样的操作来得到,答案对10^9 + 7 取模。如果有一条边(u; v) 出现在了树A 中且不在树B中,我们就认为树A 和树B 是不同的。对于1...原创 2019-09-03 09:25:20 · 257 阅读 · 0 评论 -
【NOI2007】【BZOJ1494】【洛谷P2109】【LOJ2356】生成树计数(矩阵树)(BM)(多项式取模优化线性递推)
LOJ传送门题解:很显然地,这个肯定存在线性递推式,通过矩阵树暴力+BM算法我们知道 K=5的时候的递推式也才长度46,直接求出递推式后线性递推就行了。代码:#include<bits/stdc++.h>#define ll long long#define re register#define gc get_char#define cs constusing ...原创 2019-08-10 19:28:40 · 290 阅读 · 0 评论 -
【SHOI2016】【洛谷P4336】【BZOJ4596】黑暗前的幻想乡(容斥原理)(矩阵树)
洛谷传送门BZOJ传送门题解:很显然我们将恰好包含所有n−1n-1n−1种转化为,最多包含n−1n-1n−1种-最多包含n−2n-2n−2种+最多包含n−3n-3n−3种⋯\cdots⋯。然后矩阵树随便做吧。太久没写矩阵树了,差点忘记行列式交换两行需要乘−1-1−1,虽然矩阵树根本不用考虑这个,因为我这种写法种需要交换两行的情况答案一定是0代码:#include<bits/...原创 2019-07-14 20:10:46 · 156 阅读 · 0 评论 -
2018.10.28【CQOI2018】【洛谷P4455】【BZOJ5297】社交网络(有向图矩阵树)
BZOJ传送门洛谷传送门解析:其实KirchoffKirchoffKirchoff的无向图矩阵本来就是有向图矩阵的一个扩展。所以这里仅将有向图的KirchoffKirchoffKirchoff矩阵作一个简单的阐述,详细证明请参考其他dalaodalaodalao的博客。(才不是因为我看网上证明都这么多了懒得写呢)一条有向边&amp;lt;u,v&amp;gt;&amp;lt;u,v&am...原创 2018-10-28 22:05:03 · 148 阅读 · 0 评论 -
2018.10.15【BZOJ4766】文艺计算姬(矩阵快速幂)(矩阵树)(prufer序列)(结论题)
传送门解析:显然可以用Matrix−TreeMatrix-TreeMatrix−Tree来做 推导。思路:我们直接建出基尔霍夫矩阵HHH,显然我们可以把它分成四块:左上角为AAA是一个n×nn\times nn×n的对角线为mmm的矩阵,其余为0。右上角为BBB是一个n×(m−1)n\times (m-1)n×(m−1)的全部为−1-1−1的矩阵左下角为CCC是一个(m−1)×n(...原创 2018-10-15 21:42:52 · 235 阅读 · 0 评论 -
2018.09.22【JSOI2008】【BZOJ1016】最小生成树计数(矩阵树定理)(并查集)
传送门解析:好的这是一道需要数学推理的矩阵树题目。是的,我们还会用到并查集,就像KruskalKruskalKruskal一样。首先我们考虑一个问题。前置定理我们先随便做一棵最小生成树。重要定理:那么在这棵生成树中如果权值为www的边有ttt条,那么在所有最小生成树中,权值为www的边都有kkk条。证明如下:考虑在这棵生成树中断掉一条权值为www的边,使其分为两个联通分量。再次...原创 2018-09-22 16:10:51 · 265 阅读 · 2 评论 -
【模板】矩阵树定理
参考题目:SPOJ HIGH对了有一道假题目解析:先明确几个定义。对于一个图GGG,定义其度数矩阵为D[G]D[G]D[G],为一个n∗nn*nn∗n的矩阵,满足当i!=ji!=ji!=j的时候,di,j=0d_{i,j}=0di,j=0,而大对角线上的元素di,id_{i,i}di,i值为节点viv_ivi的度数。对于一个图GGG,定义其邻接矩阵为A[G]A[G]A[G],为一...原创 2018-09-21 19:03:08 · 697 阅读 · 0 评论