SPOJ HIGH Highways
生成树的计数 Matrix-Tree定理
好像之前gerw学长讲过一遍毕姥爷讲过一遍,然而并不懂。本来不打算学的不巧两天内遇到了三道这样的题,十分难受。
定理如下。
1.G的度数矩阵D[G] 是一个n∗n的矩阵 当i≠j时,dij=0;当i=j时,dij等于i的度数;
2.G的邻接矩阵A[G];我们定义G的Kirchhoff矩阵(也称为拉普拉斯算子),C[G]=D[G]−A[G],则Matrix-Tree定理可以描述为:
G的所有不同的生成树的个数等于其Kirchhoff矩阵[G]任何一个n−1阶主子式的行列式的绝对值。
不会证。不想学。留个坑。可能也没有来填的机会了。
至少学会了怎么算行列式的值。。
认真地觉得我的代码写的十分优美。
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #include<queue> #include<vector> typedef long long LL; const int maxn=100; using namespace std; double a[maxn][maxn]; int T,g[maxn][maxn],x,y,n,m; bool zero(double x) {return (x>0?x:-x)<1e-15;} double solve() {double res=1; for(int i=1;i<n;i++) {int now=i;for(int j=i+1;j<n;j++) if(a[j][i]>a[now][i]) now=j;if(now!=i) for(int j=i;j<n;j++) swap(a[i][j],a[now][j]);if(zero(a[i][i])) return 0;res*=a[i][i];for(int j=i+1;j<n;j++) a[i][j]/=a[i][i];a[i][i]=1;for(int j=i+1;j<n;j++)for(int k=i+1;k<n;k++)a[j][k]-=a[j][i]*a[i][k];}if(res<0) res=-res;return res; } int main() {scanf("%d",&T);while(T--) {scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) a[i][j]=g[i][j]=0;for(int i=1;i<=m;i++) {scanf("%d%d",&x,&y);g[x][y]=g[y][x]=1;a[x][x]++; a[y][y]++;}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)a[i][j]-=g[i][j];printf("%.0lf\n",solve());}return 0; }
View Code
转载于:https://www.cnblogs.com/Achenchen/p/7562637.html
SPOJ HIGH Highways相关推荐
- SPOJ 104 Highways(最小生成树计数)
题目链接:http://www.spoj.pl/problems/HIGH/ 题意:求最小生成树个数. 思路:模板 #include <iostream>#include <cstd ...
- SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元
[题目分析] Matrix-Tree定理+高斯消元 求矩阵行列式的值,就可以得到生成树的个数. 至于证明,可以去看Vflea King(炸树狂魔)的博客 [代码] #include <cmath ...
- kuangbin带你飞专题合集
题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...
- 生成树的计数 Matrix-Tree(矩阵树)定理
信息学竞赛中,有关生成树的最优化问题如最小生成树等是我们经常遇到的,而对生成树的计数及其相关问题则少有涉及.事实上,生成树的计数是十分有意义的,在许多方面都有着广泛的应用.本文从一道信息学竞赛中出现的 ...
- 算法学习经典例题整理
陆续会对本篇博客进行更新! 搜索:https://vjudge.net/contest/292597 区间DP:https://vjudge.net/contest/293892 树状背包:https ...
- 基尔霍夫矩阵题目泛做(AD第二轮)
题目1: SPOJ 2832 题目大意: 求一个矩阵行列式模一个数P后的值.p不一定是质数. 算法讨论: 因为有除法而且p不一定是质数,不一定有逆元,所以我们用辗转相除法. 1 #include &l ...
- kuangbin带你飞 专题1-23 题单
kuangbin大神,对于打过ACM比赛的ACMer,无人不知无人不晓. 在此,附上vjudge平台上一位大神整理的[kuangbin带你飞]专题目录链接. [kuangbin带你飞专题目录1-23] ...
- 老鱼的-kuangbin专题题解
kuangbin专题问题一览 专题一 简单搜索 POJ 1321 棋盘问题 POJ 2251 Dungeon Master POJ 3278 Catch That Cow POJ 3279 Flipt ...
- [SPOJ P104]HIGH - Highways(Matrix-Tree定理)
Description In some countries building highways takes a lot of time- Maybe that's because there are ...
最新文章
- 通过Scroller.js制作上拉加载和下拉刷新
- windows service自动启动相关设置
- C++基础之指向成员的指针
- SQL Server 2008 批量插入数据时报错
- 去中心化 去区块链_基于区块链的去中心化应用的四种架构模式候选
- gdal数据类型_科学网-gdal数据类型的代码的核心定义文件-林清莹的博文
- linux把虚拟机上的文件共享,[转]windows中vmware虚拟机中的Linux如何进行文件的共享...
- 浅谈C#托管程序中的资源释放问题 (转载)
- Clean-Code: 有意义的名字
- 步进电机 步进电机驱动器
- 【linux】X Server / X Client / Window manager 的关系
- .htaccess重写、安全防护、文件访问权限
- DWcs4右下角没有html文件,dreamweaver cs4 (dwcs4)安装图文教程
- php对接腾讯云直播,聊天,im,云录制产生回放
- 骚操作,VSCode上发布知乎
- 最好用的文字锁屏APP的使用教程
- AI遮天传 DL-回归与分类
- python 全栈开发,Day21(抽象类,接口类,多态,鸭子类型)
- 李彦宏:没有妻子就没有百度
- ​AD设置丝印到阻焊的间距,并分析丝印重叠对阻焊的影响
热门文章
- Java成神之路——javaAgent(插桩,attach)
- php mysql 代理_让PHP像C罗一样操作MySQL之ProxySQL
- 没有找到站点_为了在家Coding,我搜集了海量的远程站点,然而...
- Fast-SCNN 多分支结构共享低级特征的语义分割网络 (一)
- javascript案例大全_JavaScript 中文资源大全,你值得拥有
- 【算法】剑指 Offer 18. 删除链表的节点
- 【算法】图的基本介绍 以及 存储方式
- 90-20-010-源码-调试-Kylin-2.6.0源码调试
- 【ElasticSearch】ElasticSearch immense term错误
- 【Flink】Flink反压(背压)网络流控