一道简单的图论题(并查集+Kruskal)求一个图的的生成树,要求最大边减最小边之差最小,输出权值之差,如果没有,输出-1要求权值差最小,所以首先将边按权值排序,枚举最小边,对于每个最小边从小到大枚举最大边用并查集判断是否连通,如果可以生成树更新ans 1 #include 2 #include 3...
分类:
其他好文 时间:
2015-04-21 00:10:22
阅读次数:
233
//prim看不懂的看看思想就容易懂啦#include
#include
#define inf 0x3fffffff
int map[101][101],flag[101],minpos[101],n,m,pos;
void prim()
{
int t,p,min,sum=0;
minpos[0]=t=1;
flag[1]=1;
while(t<n)
{
min=inf;
...
分类:
编程语言 时间:
2015-04-20 18:29:14
阅读次数:
158
main.h:
#include
#include
#define DefaultSize 10
#define maxWeight -1
using namespace std;
template
struct Edge
{
int dest;
E cost;
Edge *link;
Edge(int d=0,int c=0):dest(d),cost(c),link(NUL...
分类:
编程语言 时间:
2015-04-20 15:04:14
阅读次数:
213
还是畅通工程Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 29411Accepted Submission(s): 13156Problem De...
分类:
其他好文 时间:
2015-04-18 06:22:03
阅读次数:
213
枚举/暴力/Kruskal orz……我sb了……其实是sb题12 #include13 #include14 #include15 #include16 #include17 #define rep(i,n) for(int i=0;i=n;--i)20 #define pb push_back....
分类:
其他好文 时间:
2015-04-16 23:26:14
阅读次数:
248
题意:给出一棵树,找出一个点,求出所有点到这个点的权值和最大,权值为路径上所有边权的最小值。用神奇的并查集,把路按照权值从大到小排序,然后用类似Kruskal的方法不断的加入边。 对于要加入的一条路,这条路连接这城市x和y,x所在的集合为A, y所在的集合为B, 可以确定A,B集合内的所有路都比当前...
分类:
其他好文 时间:
2015-04-15 23:13:51
阅读次数:
170
Kruskal/并查集+枚举 唉我还是too naive,orz Hzwer 一开始我是想:最小生成树删掉一条边,再加上一条边仍是最小生成树,那么这两条边权值必须相等,但我也可以去掉两条权值为1和3的,再加上权值为2和2的,不也满足题意吗?事实上,如果这样的话……最小生成树应该是1和2,而不是1.....
分类:
Web程序 时间:
2015-04-11 00:00:08
阅读次数:
370
[算法第一轮复习] kruskal求最小生成树算法
最小生成树算法即MST,有kruskal,prim两种算法,这里主要介绍kruskal
什么是最小生成树?
对于一个图,保证其中每个点都可以连通的最小的花费
1.算法核心
贪心+并查集
2.算法实现过程
克鲁斯卡尔算法
假设 WN=(V,{E}) 是一个含有 n 个顶点的连通网,则按照克鲁斯卡尔算法构造...
分类:
编程语言 时间:
2015-04-09 17:40:48
阅读次数:
191
题目链接:http://poj.org/problem?id=1789
1Y
题目大意:对于每一个点给你一个字符串,两个点之间的距离就是两个点所对应的字符串对应位置有几个不同的字符。。找出最小生成树。
把Kruskal换成了用一个struct来记录边的两个点,以及这条边的距离。这样就不需要多开一个数组。。。
之后用一个结构体排序,让长度最小的边排到最前面。。
代码:
#include ...
分类:
其他好文 时间:
2015-04-09 17:36:41
阅读次数:
151
把码头作为0点处理。
首先判断不建码头是否可以生成最小生成树
最小生成树用kruskal算法,若对于代价
若可以:Min(最小生成树(不建码头),最小生成树(建码头));
若不可:最小生成树(建码头)
#include "stdio.h"
#include "string.h"
#include "algorithm"
using namespace std;
int fathe...
分类:
其他好文 时间:
2015-04-09 17:22:59
阅读次数:
180