
【算法】Matrix-Tree定理
文章平均质量分 67
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ1002】【FJOI2007】轮状病毒
【题目链接】点击打开链接【思路要点】输入与输出仅包含一个数,考虑找规律。使用欧几里得算法配合\(Matrix-Tree\)定理求解取模一个大质数下问题的答案,并打表。结果如下\(F(1)=1,F(2)=8,F(3)=16,F(4)=45,F(5)=121,F(6)=320,F(7)=841,F(8)=2205\)。发现规律,\(F(i)=3*F(i-原创 2018-01-12 11:10:27 · 349 阅读 · 0 评论 -
【BZOJ4766】文艺计算姬
【题目链接】点击打开链接【思路要点】写一个运用Matrix-Tree定理在取模一个大质数下解决本题的程序,通过打表找到规律:$$Ans=N^{M-1}M^{N-1}$$由于模数可能很大,具体实现时需要将乘法替换为快速加。时间复杂度\(O(Log^{2}_{N})\)。可以用Matrix-Tree定理用\(N\)和\(M\)来表示拉普拉斯矩阵(除去一行原创 2018-02-06 10:28:38 · 367 阅读 · 0 评论 -
【BZOJ3534】【SDOI2014】重建
【题目链接】点击打开链接【思路要点】无向图的生成树,考虑矩阵树定理。若一条边出现的概率为\(P_i\),则令其权值为\(\frac{P_i}{1-P_i}\)。构造基尔霍夫矩阵,令其去掉一行一列的行列式为\(Det\)。则答案为\(Det*\prod_{i\in E}(1-P_i)\)。注意到可能有\(P_i=1\),此时令\(P_i=1-10^{-8}\)即可。时间复杂度\(O(N^3)\)。【...原创 2018-05-23 20:55:35 · 317 阅读 · 0 评论 -
【BZOJ4894】天赋
【题目链接】 点击打开链接 【思路要点】 矩阵树定理同样可以计算有向图某个点的外向生成树的个数。 具体方法就是认为度数为每个点的入度,删除一号点(树根)所在的行列,然后求行列式。 时间复杂度O(N3)O(N3)O(N^3)。 【代码】 #include<bits/stdc++.h>using namespace st...原创 2018-07-08 18:55:13 · 432 阅读 · 0 评论 -
【BZOJ1494】【NOI2007】生成树计数
【题目链接】 点击打开链接 【思路要点】 写个矩阵树定理的暴力,求出对于输入的kkk,NNN在100以内的结果。 运行BM算法,我们发现答案是一个至多46阶的线性递推。 然后求它的第NNN项就好了。 时间复杂度O(R4+R2LogN)O(R4+R2LogN)O(R^4+R^2LogN),其中R=46R=46R=46。 【代码】 ...原创 2018-06-28 20:41:07 · 443 阅读 · 0 评论 -
【51Nod1446】限制价值树
【题目链接】 点击打开链接 【思路要点】 首先,也是最重要的一点,我们发现若我们规定一些goodgoodgood点为greatgreatgreat,剩余的goodgoodgood点不为greatgreatgreat,可行的生成树的方案仅和我们规定为greatgreatgreat的goodgoodgood点的数量有关。 因此问题被分成了两个: 、1...原创 2018-08-24 20:32:52 · 284 阅读 · 0 评论 -
【校内训练2019-01-08】Art
【思路要点】首先,考虑一种朴素的暴力,枚举各树边是否选取,假设选取了 xxx 条边,树将分成 n−xn-xn−x 个部分,令各部分点数为 a1,a2,a3,...,an−xa_1,a_2,a_3,...,a_{n-x}a1,a2,a3,...,an−x ,可以用矩阵树定理求解答案。由该暴力解法,我们来思考一个子问题,若不考虑暴力解法中没有选取的边是否会出现在最终的生成树上,点数为 ...原创 2019-01-08 13:46:46 · 262 阅读 · 0 评论