传送门

为了搞这个题又是学行列式,又是学基尔霍夫矩阵。

矩阵树定理

本题题解

无耻地直接发链接,反正我也是抄的题解。。

#include <cstdio>
#include <cmath>
#include <iostream> using namespace std; int n;
double a[101][101];
double ans = 1, tmp = 1, eps = 1e-9; inline void gs()
{
int i, j, k;
double div;
for(j = 1; j < n; j++)
{
k = j;
for(i = j + 1; i < n; i++)
if(fabs(a[i][j]) > fabs(a[k][j])) k = i;
if(j != k) swap(a[j], a[k]);
if(fabs(a[j][j]) < eps)
{
ans = 0;
return;
}
for(i = j + 1; i < n; i++)
{
div = a[i][j] / a[j][j];
for(k = j; k < n; k++)
a[i][k] -= a[j][k] * div;
}
}
for(i = 1; i < n; i++) ans *= a[i][i];
ans = fabs(ans);
} int main()
{
int i, j;
scanf("%d", &n);
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
{
scanf("%lf", &a[i][j]);
if(fabs(a[i][j]) < eps) a[i][j] = eps;
if(fabs(1 - a[i][j]) < eps) a[i][j] = 1 - eps;
if(i < j) tmp *= 1.0 - a[i][j];
a[i][j] /= 1.0 - a[i][j];
}
for(i = 1; i <= n; i++)
{
a[i][i] = 0;
for(j = 1; j <= n; j++)
if(i != j)
{
a[i][i] += a[i][j];
a[i][j] = -a[i][j];
}
}
gs();
printf("%.5lf\n", ans * tmp);
return 0;
}

  

[luoguP3317] [SDOI2014]重建(矩阵树定理)的更多相关文章

  1. BZOJ3534:[SDOI2014]重建(矩阵树定理)

    Description T国有N个城市,用若干双向道路连接.一对城市之间至多存在一条道路. 在一次洪水之后,一些道路受损无法通行.虽然已经有人开始调查道路的损毁情况,但直到现在几乎没有消息传回. 幸运 ...

  2. [SDOI2014] 重建 - 矩阵树定理,概率期望

    #include <bits/stdc++.h> #define eps 1e-6 using namespace std; const int N = 55; namespace mat ...

  3. luoguP3317 [SDOI2014]重建 变元矩阵树定理 + 概率

    首先,我们需要求的是 $$\sum\limits_{Tree} \prod\limits_{E \in Tree} E(u, v) \prod\limits_{E \notin Tree} (1 - ...

  4. BZOJ3534 [Sdoi2014]重建 【矩阵树定理】

    题目 T国有N个城市,用若干双向道路连接.一对城市之间至多存在一条道路. 在一次洪水之后,一些道路受损无法通行.虽然已经有人开始调查道路的损毁情况,但直到现在几乎没有消息传回. 辛运的是,此前T国政府 ...

  5. 【BZOJ3534】[SDOI2014] 重建(矩阵树定理)

    点此看题面 大致题意: 给你一张图,每条边有一定存在概率.求存在的图刚好为一棵树的概率. 矩阵树定理是什么 如果您不会矩阵树定理,可以看看蒟蒻的这篇博客:初学矩阵树定理. 矩阵树定理的应用 此题中,直 ...

  6. 【BZOJ3534】重建(矩阵树定理)

    [BZOJ3534]重建(矩阵树定理) 题面 BZOJ 洛谷 题解 这.... 矩阵树定理神仙用法???? #include<iostream> #include<cmath> ...

  7. 【Luogu】P3317重建(高斯消元+矩阵树定理)

    题目链接 因为这个专门跑去学了矩阵树定理和高斯消元qwq 不过不是很懂.所以这里只放题解 玫葵之蝶的题解 某未知dalao的矩阵树定理 代码 #include<cstdio> #inclu ...

  8. 【算法】Matrix - Tree 矩阵树定理 & 题目总结

    最近集中学习了一下矩阵树定理,自己其实还是没有太明白原理(证明)类的东西,但想在这里总结一下应用中的一些细节,矩阵树定理的一些引申等等. 首先,矩阵树定理用于求解一个图上的生成树个数.实现方式是:\( ...

  9. @总结 - 7@ 生成树计数 —— matrix - tree 定理(矩阵树定理)与 prüfer 序列

    目录 @0 - 参考资料@ @0.5 - 你所需要了解的线性代数知识@ @1 - 矩阵树定理主体@ @证明 part - 1@ @证明 part - 2@ @证明 part - 3@ @证明 part ...

随机推荐

  1. 洛谷 First Step (ファーストステップ) 3月月赛T1

    题目背景 知らないことばかりなにもかもが(どうしたらいいの?) 一切的一切 尽是充满了未知数(该如何是好) それでも期待で足が軽いよ(ジャンプだ!) 但我仍因满怀期待而步伐轻盈(起跳吧!) 温度差なん ...

  2. js 分组数组

    思路: 1.先将数组按照一定规则排序: 2.再拆分数组到Map中,按Key分类: 3.再从Map中遍历取出要显示的内容: sortBroadList: function (broadcastList) ...

  3. UVA 1349 Optimal Bus Route Design (二分图最小权完美匹配)

    恰好属于一个圈,那等价与每个点有唯一的前驱和后继,这让人想到了二分图, 把一个点拆开,点的前驱作为S集和点的后继作为T集,然后连边,跑二分图最小权完美匹配. 写的费用流..最大权完美匹配KM算法没看懂 ...

  4. couldn't be opened because you don't have permission to view it” 解决方法

    I use Xcode6 GM. I encountered the same problem. What I did was to go to Build Options. Then I chang ...

  5. vue 中 $set 的使用

    在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去: <!DOCTYPE html> <html> & ...

  6. Qt+事件的接收和忽略

    事件的接收与忽略的示意图如下图: 依据前面的知识,事件是可以依据情况进行接收和忽略的,事件的传播是组件层次上面的,而不是依靠类继承机制.在一个特殊的情形下,我们必须使用accept()和ignore( ...

  7. 浏览器window产生的缓存九种解决办法

    浏览器缓存(Browser Caching)是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户.浏览器 ...

  8. (5)JSTL的xml标签库

    Jstl的XML标签库 JSTL提供了操作xml文件的标签库,使用xml标签库可以省去使用Dom和SAX标签库的繁琐,能轻松的读取xml文件的内容. <%@ taglib uri="h ...

  9. 洛谷P1001 A+B Problem

    这道题…………还是很简单!!! code: #include <iostream> #include <cstdio> using namespace std; int mai ...

  10. 【计数】51nod1677 treecnt

    要将答案看做是小问题的贡献和 Description 给定一棵n个节点的树,从1到n标号.选择k个点,你需要选择一些边使得这k个点通过选择的边联通,目标是使得选择的边数最少. 现需要计算对于所有选择k ...