Arctic Network

Arctic Network

https://vjudge.net/contest/477987#problem/G


#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int inf=0x3f3f3f;
double cmap[10010][10010],x[10010],y[10010],d[10010];
int c[10010];
int main()
{
	int n,s,p;
	cin>>n;
	while(n--)
	{
		memset(c,0,sizeof(c));
		cin>>s>>p;
		for(int i=1;i<=p;i++)
		{
			cin>>x[i]>>y[i];
		}
		for(int i=1;i<=p;i++)
		{
			for(int j=1;j<=p;j++)
			{
				cmap[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
			}
		}
		for(int i=1;i<=p;i++)d[i]=cmap[1][i];
		c[1]=1;
		int u;
		for(int i=1;i<=p;i++)
		{
			double cmin=inf;
			for(int j=1;j<=p;j++)
			{
				if(c[j]==0&&cmin>d[j])
				{
					u=j;
					cmin=d[j];
				}
			}
			c[u]=1;
			for(int j=1;j<=p;j++)
			{
				if(c[j]==0&&d[j]>cmap[u][j])
				{
					d[j]=cmap[u][j];
				}
			}
		}
		sort(d,d+p+1);
		printf("%.2f\n",d[p-s+1]);
	}
}

  

posted @ 2022-02-09 20:36  是橙橙吖  Views(6)  Comments(0)    收藏  举报