随笔分类 -  生成树

摘要:Roads In ICPCCamp there were $n$ towns conveniently numbered with $1, 2, \dots, n$ connected with $m$ roads. Bobo would like to know the number of way 阅读全文
posted @ 2019-10-05 14:16 Aragaki 阅读(281) 评论(0) 推荐(0)
摘要:给你定义一种特殊的图 这种图总共有n个节点 假设编号为0~n-1 首先1~n-1排成环形 每个点与相邻的两个点有边 其次这n-1个节点每个和0节点有一条边 每次询问你一个n 要回到当前n节点的特殊图有多少个生成树 解法一:MARTIX-TREE定理 每次询问都O(n^3)地算出答案 解法二:找规律递 阅读全文
posted @ 2018-11-27 20:50 Aragaki 阅读(143) 评论(0) 推荐(0)
摘要:POJ1639 顶点度数限制的最小生成树 做法:首先把和顶点相连的X条边全部删掉 得到顶点和 X个连通块 然后求出这X个连通块的MST 再把X条边连接回去这样我们就首先求出了X度MST 知道了X度MST 我们接下来要求X+1度MST 也就是再给顶点一条边 但是加上了这条边就会生成一个环 我们需要删掉 阅读全文
posted @ 2018-08-18 00:54 Aragaki 阅读(211) 评论(0) 推荐(0)
摘要:给你N个点和M条边 要求你求出一个生成树使得这个生成树里边权极差最小 做法① n*m做法 当最小的边已知的时候这个生成树就确定 所以最大的边也确定了 于是我们每次枚举最小的边 然后用kruskal做一遍得到答案 m*logn LCT 阅读全文
posted @ 2018-07-14 19:56 Aragaki 阅读(370) 评论(0) 推荐(0)
摘要:算法: 求出MST之后枚举每条在MST之外的边 连上之后会出现环 找到环中除加上的边之外权值最大的边 删除该边之后得到一颗新树 做法: 利用LCA倍增地维护最小生成树上两点之间的最大边权 每次枚举在MST之外的边 有两种情况 ①.两个端点在一条链上 ②.两个端点不在一条链上 第一种情况就直接得到答案 阅读全文
posted @ 2018-07-14 19:30 Aragaki 阅读(435) 评论(0) 推荐(0)
摘要:例:给定一个图,图上每条边是红色或蓝色 求恰好有K条红边的生成树的个数,N<=50. Matrix-Tree定理 对于限制条件可以利用多项式,把红边边权设为X,蓝边边权设为1. 最后求行列式得到的多项式中,X^k的系数就是答案. 同样这也是利用了边权乘积的推广. 至于多项式情况下不方便高斯消元的问题 阅读全文
posted @ 2018-04-28 23:38 Aragaki 阅读(246) 评论(0) 推荐(0)