博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sicily 1504:Slim Span(最小生成树)
阅读量:6160 次
发布时间:2019-06-21

本文共 1878 字,大约阅读时间需要 6 分钟。

1 #include
2 using namespace std; 3 4 struct Vertex{ 5 int start, end; 6 int weight; 7 }; 8 Vertex arr[10000]; 9 int par[10000];10 int n, m;11 int find(int n){12 while(par[n] != n){13 n = par[n];14 }15 return n;16 }17 void merge(int n1, int n2){18 while(par[n1] != n1){19 n1 = par[n1];20 par[n1] = n2;21 }22 par[n1] = n2;23 }24 bool cmp(Vertex v1, Vertex v2){25 return v1.weight < v2.weight;26 }27 28 void init(){ 29 for(int i = 0; i <= n; i++)par[i] = i;30 }31 32 long long func(int k){33 init();34 int weight_max = 0;35 int i = 0;36 bool fail = false;37 int kk = k;38 while(i < n-1){39 if(k >= m){40 fail = true;41 break;42 }43 Vertex tmp = arr[k++];44 int n1 = find(tmp.start);45 int n2 = find(tmp.end);46 if(n1 == n2){47 continue;48 }49 else{50 if(i == n-2){51 weight_max = tmp.weight;52 }53 if(n1 > n2)swap(n1, n2);54 merge(n2, n1);55 i++;56 }57 }58 59 if(fail) return -1;60 else return weight_max - arr[kk].weight;61 }62 63 int main(){64 while(scanf("%d%d", &n, &m) != EOF && (n != 0 || m != 0)){65 init();66 for(int i = 0; i < m; i++){67 scanf("%d%d%d", &arr[i].start, &arr[i].end, &arr[i].weight);68 }69 int MIN = 100000000;70 sort(arr, arr+m, cmp);71 for(int i = 0; i < m; i++){72 int tmp = func(i);73 if(tmp != -1)MIN = min(MIN, tmp);74 }75 if(MIN == 100000000){76 printf("-1\n");77 }78 else{79 printf("%d\n", MIN);80 }81 }82 }

 

转载于:https://www.cnblogs.com/Vincent-Bryan/p/6784152.html

你可能感兴趣的文章
SQL Server 2008 R2 性能计数器详细列表(三)
查看>>
sphinx下的max_matches取值对SetLimits的影响
查看>>
ASP.NET Core中的project.json何去何从?
查看>>
SQL盲注修订建议
查看>>
Cramfs、JFFS2、YAFFS2的全面对比
查看>>
boost库
查看>>
LeetCode——Longest Consecutive Sequence
查看>>
Python对字典(directory)按key和value排序
查看>>
Azure: 给 ubuntu 虚机挂载数据盘
查看>>
工作总结 @{var sas = String.Format("{0:yyyy-MM-dd}", Model.DemandTime.GetValueOrDefault());}
查看>>
Bootstrap table分页问题汇总
查看>>
javascript进阶课程--第三章--匿名函数和闭包
查看>>
多线程UI
查看>>
Jenkins部署java项目实例
查看>>
深入理解Python中的yield和send
查看>>
好玩的WPF第四弹:用Viewport2DVisual3D实现3D旋转效果
查看>>
javascript学习笔记
查看>>
VLFeat-----mean sift开源库【配置】【转载】
查看>>
wa,架构师
查看>>
文件打包,下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
查看>>