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]);
}
}

浙公网安备 33010602011771号