UVa1395图论之最小生成树

//除了套模版之外还有新的思想在其中:枚举。

#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <math.h>
#include <map>
#include <set>
#include <vector>
#include <string>
#include <cstring>
#include <sstream>
#include <queue>
#include <stack>
using namespace std;

#define input freopen("input.txt","r",stdin)
#define output freopen("output.txt","w",stdout)
#define For1(i,a,b) for (i=a;i<b;i++)
#define For2(i,a,b) for (i=a;i<=b;i++)
#define Dec(i,a,b) for (i=a;i>b;i--)
#define Dec2(i,a,b) for (i=a;i>=b;i--)
#define Sca_d(x) scanf("%d",&x)
#define Sca_s(x) scanf("%s",x)
#define Sca_c(x) scanf("%c",&x)
#define Sca_f(x) scanf("%f",&x)
#define Sca_lf(x) scanf("%lf",&x)
#define Sca_lu(x) scanf("%I64d",&u)
#define Sca_ld(x) scanf("%I64d",&x)
#define Fill(x,a) memset(x,a,sizeof(x))
#define inf 99999999

const int maxn=200;
const int maxm=20000;
int n,m;
int p[maxn];

struct Edge
{
	int u,v,w;
}edge[maxm];

int find(int x) {return p[x]==x?x:p[x]=find(p[x]);}

int cmp(const void *a,const void *b)
{
	Edge *c=(Edge *)a;
	Edge *d=(Edge *)b;
	if (c->w!=d->w) return c->w - d->w;
}

int main()
{
	//input;
	int i,j,k,l,r,x,y,check,ans;
	while(cin>>n>>m,m+n)
	{
		Fill(edge,0);
		For2(i,1,m)
			cin>>edge[i].u>>edge[i].v>>edge[i].w;
		ans=inf;
		qsort(edge+1,m,sizeof(edge[0]),cmp);
		For2(l,1,m)//l控制当前最小边 
		{
			int maxedge=0;
			int minedge=inf;
			For2(i,0,n) p[i]=i;
			r=l;
			check=0;
			while((check<n-1)&&(r<=m))
			{
				int &u=edge[r].u;
				int &v=edge[r].v;
				x=find(u);
				y=find(v);
				if (x!=y)
				{
					p[x]=y;
					check++;
					maxedge=max(maxedge,edge[r].w);
					minedge=min(minedge,edge[r].w);
				}
				r++;
			}
			if (check==n-1) ans=min(ans,maxedge-minedge);
		}
		if (ans==inf) puts("-1");
		else cout<<ans<<endl;
	}
	return 0;
}



全部评论

相关推荐

等闲_:感觉有好多地方会被问穿,mysql存储向量这个方案问题应该很大的,如果深问的的话,为什么不用es,不用pg,不用mivus,分块策略是怎么做的,向量化是怎么向量化的,稠密向量还是稀疏向量,再深问余弦相似度,HSWM算法,Bm25算法,为什么不用混合检索或者Rank重排序优化?其他的项目不停机分库分表咋实现的,切库过程中数据有diff的话有没有补偿策略?既然有了分库分表了有没有碰到业务上不好优化的慢sql,让这个sql读从库?而且点评的话,最好自己压测过,要不这个数据也不好解释。现在就27的情况来看,很多同学已经有了中大厂实习,这个节点也会偏向这些有大厂实习的92同学,而且hc也不多,所以坚持海投吧
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务