sro_ptx_orz qwq算是一个套路的记录 对于一个有向图来说 如果你要求一个外向生成树的话,那么如果存在一个\(u\rightarrow v\)的边 那么\(a[u][v]--,a[v][v]++\) 对应的去掉第\(i\)行和第\(i\)列的余子式,就是以\(i\)为根的生成树个数. 内向生成树也是同理.所有的反过来即可 #include<iostream> #include<cstdio> #include<algorithm> #include<cs…
BZOJ5297 CQOI2018 社交网络 Description 当今社会,在社交网络上看朋友的消息已经成为许多人生活的一部分.通常,一个用户在社交网络上发布一条消息(例如微博.状态.Tweet等)后,他的好友们也可以看见这条消息,并可能转发.转发的消息还可以继续被人转发,进而扩散到整个社交网络中.在一个实验性的小规模社交网络中我们发现,有时一条热门消息最终会被所有人转发.为了研究这一现象发生的过程,我们希望计算一条消息所有可能的转发途径有多少种.为了编程方便,我们将初始消息发送者编号为1,…
题目链接 BZOJ5297 题解 最近这玩意这么那么火 这题要用到有向图的矩阵树定理 主对角线上对应入度 剩余位置如果有边则为\(-1\),不然为\(0\) \(M_{i,i}\)即为以\(i\)为根的有向图生成树个数 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<map> #defi…
板子题. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define N 256 #define P 10007 ')) c=getchar();return c;} ?n:gcd(…
Matrix_tree Theorem: 给定一个无向图, 定义矩阵A A[i][j] = - (<i, j>之间的边数) A[i][i] = 点i的度数 其生成树的个数等于 A的任意n - 1阶主子式的值. 关于定理的相关证明 可以看这篇文章, 讲得非常详细, 耐心看就能看懂: 关于求行列式, 可以用高斯消元. 如果是模域下求行列式, 可以用欧几里得算法. 具体实现看这篇文章 模域下求行列式 模板题:SPOJ DETER3 代码: #include <cstdio> #inclu…
题目描述 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时候,相邻的格子之间都有墙隔着. 你想要打通一些相邻房间的墙,使得所有房间能够互相到达.在此过程中,你不能把房子给打穿,或者打通柱子(以及柱子旁边的墙).同时,你不希望在房子中有小偷的时候会很难抓,所以你希望任意两个房间之间都只有一条通路.现在,你希望统计一共有多少种可行的方案. 题解 其实题目的意思就是让你求这张图的生成树个数. 下面是玄学时…
[BZOJ5297][CQOI2018]社交网络(矩阵树定理) 题面 BZOJ 洛谷 Description 当今社会,在社交网络上看朋友的消息已经成为许多人生活的一部分.通常,一个用户在社交网络上发布一条消息 (例如微博.状态.Tweet等)后,他的好友们也可以看见这条消息,并可能转发.转发的消息还可以继续被人转 发,进而扩散到整个社交网络中.在一个实验性的小规模社交网络中我们发现,有时一条热门消息最终会被所有人 转发.为了研究这一现象发生的过程,我们希望计算一条消息所有可能的转发途径有多少种…
题目链接 //输出ht见UOJ.35 #include<cstdio> #include<cstring> #include<algorithm> const int N=1e6+5; int n,tm[N],t1[N],t2[N],SA[N],rk[N],ht[N]; //SA[i]=j:排名为i的后缀开头的下标为j //rk[i]=j:以下标i开头的后缀排名为j //ht[i]:排名为i的后缀与排名为i-1的后缀的LCP长度 char s[N]; void Get_…
题目:https://www.luogu.org/problemnew/show/P4336 当作考试题了,然而没想出来,呵呵. 其实不是二分图完美匹配方案数,而是矩阵树定理+容斥... 就是先放上所有的边,求生成树个数,但其中可能有的公司的边没有选上,所以减去至少一个公司没选上的,加上两个... 高斯消元里面可以直接除而不用辗转相除,因为取模可以乘逆元,反倒是辗转相除里不能直接用除法,会减不到0. 代码如下: #include<iostream> #include<cstdio>…
题目背景 又到了某任*堂开关中学一年一度的自主招生考试的时间了,在考试完后许多家长决定带着自己的孩子参观一下这所距千年名校还有890周年的百年学校: 题目描述 这所学校的布局非常奇怪,是一个由N 个点M 条边构成的无向图,既然来了肯定要把学校逛完. 家长们的思路也非常清奇,带孩子走过的边刚好有n-1 条,并且这n-1 条边构成了原图的一棵生成树. 每条边上所能看到的风景有两个固定的价值A 和B ,走了这条边就只能得到这条边的A价值,而没走的边就只能得到那条边的B 价值,每个家庭最终看到的总价值的…