最小生成树
WerKeyTom_FTD
我是一只来自中山纪念中学高三的oier,请多多指教
展开
-
最小代价
题目大意给出一副无向图,图中有黑点和白点,要求选择图中一些边建成新图,满足不会存在任何一个白点到最近的黑点距离超过原图中该白点到最近黑点的距离。水题建立虚拟结点连向所有黑点权值为0. 然后做一遍最短路,在最短路径中的边保留,然后做最小生成树。#include<cstdio> #include<algorithm> #include<set> #define fo(i,a,b) for(i=a;i<原创 2016-03-09 19:17:17 · 484 阅读 · 0 评论 -
[51nod 1614]刷题计划
题目描述大赛将至,摆在你面前的是n道题目,第 i(1 ≤ i ≤ n) 道题目能提升 ai 点智力值,代码量为 bi KB,无聊值为 ci ,求至少提升m点智力值的情况下,所做题目代码量之和*无聊值之和最小为多少。最小乘积生成树把每种方案的代码量和当做横坐标,无聊值和当做纵坐标,每种方案都可以用一个二维平面的点表示。 首先同在一个反比例函数上的点横纵乘积相同,我们要找一个点横纵乘积最小。 首先用原创 2016-09-08 17:14:06 · 1244 阅读 · 0 评论 -
[bzoj1016][JSOI2008]最小生成树计数
题目大意给定n个点m条无向边的图G,求G的最小生成树个数,模31011。 其实有个特殊条件但我们的高端做法可以忽略。 n<=100,m<=1000矩阵树定理我们来思考一个图G所有最小生成树的同一个性质: 假如我加入所有边权<=w的边,任何生成树的联通情况一定是一致的。 脑补得证QAQ 或者你考虑反证+切割引理。 我们把边权相同的边当做一组边,每次在原来的基础上把这样边都加入。例如原本三个原创 2017-02-15 14:47:49 · 531 阅读 · 0 评论 -
最小生成树
题目描述结论下面的m均指非树边有m条。 非树边的权值肯定赋值为路径上的最大值(根据环切原理这是下界)。 考虑按权值从小到大加入,每加入一条边就会连接两棵树。 那么一条非树边如果左端在其中一颗树中,右端在另一颗树中,则其权值和该树边一致。 由于是按照权值从小到大加入的,我们希望每次有尽量多的非树边权值确定。 那么容易发现,第i次一定会连接一个大小为i的树和一个单个的节点,也就是产生i-1条非原创 2017-06-22 20:39:40 · 478 阅读 · 0 评论 -
[bzoj4986]MiniumCut
题目大意一副无向图,给定任意两点间最小割,请构造出这样的图,或判断无解。构造显然构造出最小割树即可。 容易发现最小割树一定是一颗最大生成树。 不同的最大生成树之间任意两点间最小割不变。 因此做一颗最大生成树,看它是否满足条件即可。#include<cstdio> #include<algorithm> #define fo(i,a,b) for(i=a;i<=b;i++) using nam原创 2017-12-12 21:05:41 · 524 阅读 · 0 评论 -
[Neerc2013]Dictionary
题目大意 给你n个长度不超过10的小写字母字符串。 请你构造一颗节点数最少的字典树。 使得对于任意一个人给定字符串,字典树中都存在一条祖先后代链对应的字符串与其相等。 做法 首先显然,如果字符串a包含字符串b,可以直接剔除字符串b。 我们考虑最优解,一定是按照某个顺序添加字符串进入字典树中。 假设现在有字符串c,可以找到其一个最长前缀,使得该前缀可以被字典树表示,然后把剩余后缀加...原创 2018-03-26 11:39:45 · 497 阅读 · 0 评论