码迷,mamicode.com
首页 > 其他好文 > 详细

luogu P1265 公路修建 最小生成树

时间:2020-05-13 15:19:02      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:algo   namespace   sqrt   name   type   str   MIP   printf   ipo   

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<algorithm>
using namespace std;
#define x first
#define y second
typedef pair<int,int>pii;
const int N=5050;
const int INF=1e9;
pii p[N];
double dist[N];
bool vis[N];
int n;
double calc(int x1,int y1,int x2,int y2)
{
	return sqrt((double)(x1-x2)*(x1-x2)+(double)(y1-y2)*(y1-y2));
}
int main()
{
	cin>>n;
	for(int i=1; i<=n; i++)
		cin>>p[i].x>>p[i].y;
	for(int i=2; i<=n; i++)
		dist[i]=INF;
	double ans=0;
	for(int i=1; i<=n; i++)
	{
		double miv=INF;
		int mipoj;
		for(int j=1; j<=n; j++)
			if(!vis[j]&&dist[j]<miv)
			{
				mipoj=j;
				miv=dist[j];
			}
		ans+=miv;
		vis[mipoj]=1;
		for(int j=1; j<=n; j++)
		{
			double t=calc(p[mipoj].x,p[mipoj].y,p[j].x,p[j].y);
			if(t<dist[j])
				dist[j]=t;
		}
	}
	printf("%.2lf\n",ans);
	return 0;
}

luogu P1265 公路修建 最小生成树

标签:algo   namespace   sqrt   name   type   str   MIP   printf   ipo   

原文地址:https://www.cnblogs.com/QingyuYYYYY/p/12882476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!