摘要: 蛮不错的一道题,遗憾就遗憾在数据范围会导致暴力轻松跑过。 最小生成树的两个性质: 不同的最小生成树,相同权值使用的边数一定相同。 不同的最小生成树,将其都去掉同一个权值的所有边,其连通性一致。 这样我们随便跑一个$MST$,就可以知道所有$MST$边的构造情况。由于性质二,我们可以考虑枚举每一种权值 阅读全文
posted @ 2019-05-29 20:32 maomao9173 阅读(144) 评论(0) 推荐(0) 编辑
摘要: "题解看这里" ,主要想说一下以前没见过的变元矩阵树还有前几个题见到的几个小细节。 邻接矩阵是可以带权值的。求所有生成树边权和的时候我们有一个基尔霍夫矩阵,是度数矩阵减去邻接矩阵。而所谓变元矩阵树实际上就是把度数矩阵和邻接矩阵带权化,也就是度数矩阵变成该点连接的所有边的权值和,邻接矩阵变成边权矩阵, 阅读全文
posted @ 2019-05-29 16:03 maomao9173 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 同样是矩阵树定理的裸题。但是要解决它需要能够想到容斥才可以。 $20$以内的数据范围一定要试试容斥的想法。 cpp include using namespace std; define int long long const int N = 17 + 5; const int mod = 1000 阅读全文
posted @ 2019-05-29 15:22 maomao9173 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 裸的矩阵树定理。求行列式的时候答案要在中间统计,因为交换两个行会使答案取反。 cpp include using namespace std; const int N = 10 + 5; const int M = 100 + 5; const int mod = 1000000000; char 阅读全文
posted @ 2019-05-29 15:04 maomao9173 阅读(109) 评论(0) 推荐(0) 编辑