POJ3522-Slim Span
来源:互联网 发布:辛集淘宝运营培训学校 编辑:程序博客网 时间:2024/05/22 06:09
求生成树里 |最大权-最小权|==差值,求差值最小的。
反复思索应该用什么算法,但最后答案就是kruskal的枚举。(之前在大连也遇到过这种题,就是需要让你把一个算法枚举)数据量比较小,所以不会超时。
排序后权值是从小到大的,你一个个的往后作为最小的权值,不需要在意那些被忽略的 ,这里我绕了好久才明白。
#include<stdio.h>#include<vector>#include<set>#include<string.h>#include<string>#include<map>#include<algorithm>using namespace std;int pre[110],n,m,ans;struct e{ int x,y,z;}a[100000];int cmp(e a,e b){return a.z<b.z;}void init(){ for(int i=0;i<=n;i++) pre[i]=i;}int find(int x){ while(x!=pre[x]) x=pre[x]; return x;}int main(){ while(scanf("%d%d",&n,&m)!=EOF) { if(n==0&&m==0) break; for(int i=0;i<m;i++){ scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z); } ans=999999; sort(a,a+m,cmp); for(int i=0;i<m;i++){ init(); int cnt=0,temp=999999; for(int j=i;j<m;j++){ int fx=find(a[j].x); int fy=find(a[j].y); if(fx!=fy){ pre[fy]=fx; cnt++; if(cnt==n-1){ temp=a[j].z-a[i].z; break; } } } if(temp<ans) ans=temp; } if(ans!=999999) printf("%d\n",ans); else printf("-1\n"); } return 0;}
0 0
- POJ3522 Slim Span
- POJ3522:Slim Span
- poj3522 - Slim Span
- poj3522 Slim Span
- POJ3522-Slim Span
- poj3522 Slim Span
- Slim Span poj3522
- POJ3522 Slim Span(kruskal)
- poj3522 Slim Span
- POJ3522 - Slim Span (Japan 2007)
- POJ3522 Slim Span(最小生成树,Kruakal)
- UVa1395&POJ3522--Slim Span【kruskal】瓶颈生成树
- POJ3522——Slim Span(最小生成树)
- poj3522 Slim Span 最长边与最短边差值最小的生成树,kruskal算法 + 暴力枚举
- POJ3522 Slim Span 解题报告【Kruskal求最小生成树+枚举】
- Slim Span
- Slim Span
- Slim Span
- uva 548 tree 二叉树的各种遍历
- Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
- [单调栈] poj 3250 Bad Hair Day
- 解决警告——warning C4018: “<”: 有符号/无符号不匹配
- 除去在浏览器中自动完成表单后input出现黄色背景
- POJ3522-Slim Span
- POJ 1511 Invitation Cards 邻接表 spfa算法
- MYBATIS Intercepter 数据库加密
- NYOJ45:过河问题【贪心】
- HDOJ 1513 Palindrome(LCS)
- EC11旋转编码器电路和程序
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- POJ 1258--Agri-Net【最小生成树 && Kruskal && 水题】
- PC110102(扫雷)(Minesweeper)