POJ2349 (prim)

来源:互联网 发布:linux 没有home目录 编辑:程序博客网 时间:2024/05/22 17:06

转自http://blog.csdn.net/huangkuizuiniu/article/details/50614777

#include<iostream>#include<cstdio>#include<cmath>using namespace std;double x[1001],y[1001],a[1001][1001],d[1001],p[1001],ans[10001],asd[10001];int main(){int i,j,k,m,n;int t;cin>>t;int v=0;for(int q=1;q<=t;q++){    int u=0;cin>>m>>n;for(i=1;i<=n;i++)      for(j=1;j<=n;j++){      a[i][j]=0;}    for(i=1;i<=n;i++){      cin>>x[i]>>y[i];      p[i]=0;d[i]=10000000.0;  }    for(i=1;i<=n;i++)      for(j=1;j<=n;j++){      a[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));}d[1]=0;          int min;    for(i=1;i<=n;i++){         min=1000000000.0;        for(j=1;j<=n;j++)            if(!p[j] && d[j]<min){                 k=j;                  min=d[j];              }          p[k]=1;            ans[++u]=d[k];for(j=1;j<=n;j++)              if(!p[j] && a[i][j]!=0 && d[j]>a[j][k])                  d[j]=a[j][k];      }    for(i=1;i<u;i++)          for(j=i+1;j<=u;j++){      if(ans[i]<ans[j]){    int tmp;    tmp=ans[i];ans[i]=ans[j];ans[j]=tmp;  }}asd[++v]=ans[m];    for(i=1;i<=u;i++)ans[i]=0;}   for(i=1;i<=t;i++){    cout<<asd[i]<<endl;}return 0;}

0 1
原创粉丝点击