luogu 4208 [JSOI2008]最小生成树计数
Posted 夜深风竹敲秋韵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu 4208 [JSOI2008]最小生成树计数相关的知识,希望对你有一定的参考价值。
题目描述
现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树。(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的)。由于不同的最小生成树可能很多,所以你只需要输出方案数对31011的模就可以了。
输入格式
第一行包含两个数,n和m,其中1<=n<=100; 1<=m<=1000; 表示该无向图的节点数和边数。每个节点用1~n的整数编号。
接下来的m行,每行包含两个整数:a, b, c,表示节点a, b之间的边的权值为c,其中1<=c<=1,000,000,000。
数据保证不会出现自回边和重边。注意:具有相同权值的边不会超过10条。
输出格式
输出不同的最小生成树有多少个。你只需要输出数量对31011的模就可以了。
输入输出样例
4 6 1 2 1 1 3 1 1 4 1 2 3 2 2 4 1 3 4 1
8
说明/提示
说明 1<=n<=100; 1<=m<=1000;1≤ci?≤109
分析
很妙的一道暴搜(?)题
是的,暴搜,真是一个优秀的算法
正解什么矩阵树,高斯消元啥的
我暴搜流派就是流弊
先放几个写得不错的题解:
怎么搜,首先一个结论:
对于最小生成树的一个替代边,必有替代边等于最小生成树中的一边,并与这一边连接了同两个连通块
所以,对于最小生成树的不同方案,相同长度的边的个数是一样的
我们可以对相同长度的边进行暴搜(选/不选),最后判断是否与最小生成树中的个数相同来判断是否合法‘’
用乘法原理,将各个不同长度的边的方案相乘,的到最终方案数
为你,所向披靡!
以上是关于luogu 4208 [JSOI2008]最小生成树计数的主要内容,如果未能解决你的问题,请参考以下文章