给n个点,m条边的图,每条边要么属于a公司,要么属于b公司。要求一颗最小生成树,条件是其中属于a公司的边数为k。
这题做法很巧妙。
要求最小生成树,但有一定限制,搜索、贪心显然都不对。
要是能找到一种合理的控制方法,使得求MST的过程中可以控制a公司边的数量,那样问题就解决了。
所以我们可以人为给a公司的边加上一定的权值,使得其中一些边不得不退出MST的选择范围内。
如果此时求的...
分类:
其他好文 时间:
2014-10-23 22:47:26
阅读次数:
339
Problem Description
在图论中,树:任意两个顶点间有且只有一条路径的图。
生成树:包含了图中所有顶点的一种树。
最小生成树:对于连通的带权图(连通网)G,其生成树也是带权的。生成树T各边的权值总和称为该树的权,权最小的生成树称为G的最小生成树(Minimum Spanning Tree)。最小生成树可简记为MST。
但是,对于一个图而言,最小生成树并不是唯一的。
现...
分类:
其他好文 时间:
2014-10-19 11:36:48
阅读次数:
131
Highways
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 22842
Accepted: 10525
Description
The island nation of Flatopia is perfectly flat. Unfortunately...
分类:
其他好文 时间:
2014-10-19 10:13:53
阅读次数:
217
大水题,真不知道出题者是怎么把这么水的题出的这么长的TAT其实这题在于考语文水平,一共三个要求,前两个要求意思就是要选出的道路是树形的,最后一个要求就是要权值最小,于是整个题意说白了就是求一棵MST,以前向星的形式给出最容易想到kruskal算法,于是这题顺利结束,从看题一直到调试结束半个小时搞定…...
分类:
其他好文 时间:
2014-10-05 16:20:38
阅读次数:
197
题目大意:在二维平面上找出一个点,使它到所有给定点的距离和最小,距离定义为欧氏距离,求这个最小的距离和是多少(结果需要四舍五入)?思路:如果不能加点,问所有点距离和的最小值那就是经典的MST,如果只可以加一个点问最小值就是广义的费马点的问题,如果加点的数目不加限制,那问题就成了斯坦纳树的问题(介个属...
分类:
其他好文 时间:
2014-10-05 16:19:58
阅读次数:
211
首先点击右下角的电源图标,我的没插电池会显示一个在电源图标处点左键或右键都行,点击电源选项>>选择关闭盖子的功能把这四项选为不采取任何操作>>保存修改右击“这台电脑”>>属性>>远程设置如下选择,然后确定再来到控制面板>>系统和安全好了,现在可以打开远程服务了按住win键加R键,打开运行,输入mst...
分类:
其他好文 时间:
2014-10-04 23:29:20
阅读次数:
245
江苏就是江苏啊,题目质量高。看到题的时候只YY出了第一个性质:MST中边权相同的的边的个数是一定的。(证略,可以用反证法)后来上网找题解,发现还有第二个性质:MST如果用Kruskal来做,做完长度为x的所有边以后,此时图的连通性是确定的。(这也是很明显的)于是嘛。。。先算出每个长度的边的cnt,然...
分类:
Web程序 时间:
2014-09-30 09:42:12
阅读次数:
313
题意:给出一个距离矩阵,问是不是一颗正确的带权树。解法:先按找距离矩阵建一颗最小生成树,因为给出的距离都是最短的点间距离,然后再对每个点跑dfs得出应该的dis[][],再对比dis和原来的mp是否一致即可。首先还要判断一些东西。具体看代码吧。代码:#include #include #includ...
分类:
其他好文 时间:
2014-09-29 14:43:01
阅读次数:
228
UVA 1395 - Slim Span
题目链接
题意:给定一些结点和边,要求出最苗条度最小的生成树,苗条度定义为:生成树中最大权的边减去最小权的边的值
思路:类似建最小生成树的算法,多一步枚举起始边即可
代码:
#include
#include
#include
using namespace std;
const int N = 105;
const ...
分类:
其他好文 时间:
2014-09-24 16:50:47
阅读次数:
265
次小生成树
求最小生成树时,用数组Max[i][j]来表示MST中i到j的最大边权。
求完后,直接枚举所有不在MST中的边,替换掉最大边权的边,更新答案。
#include
#include
#include
using namespace std;
const int maxn = 110;
const int INF = 1e9;
bool vis[maxn];
in...
分类:
其他好文 时间:
2014-09-20 02:17:36
阅读次数:
203