此题略坑,%.3lf用g++一直WA,c++过的
//Accepted 468 KB 16 ms #include <cstdio> #include <cstring> #include <iostream> #include <queue> #include <cmath> #include <algorithm> using namespace std; /** * This is a documentation comment block * 如果有一天你坚持不下去了,就想想你为什么走到这儿! * @authr songt */ ; ; int x[imax_n]; int y[imax_n]; double a[imax_n][imax_n]; bool vis[imax_n]; double dis[imax_n]; int n; double max(double a,double b) { ) return b; return a; } double min(double a,double b) { ) return b; return a; } void dij(int src) { memset(vis,false,sizeof(vis)); vis[src]=true; ;i<=n;i++) dis[i]=a[src][i]; ;i<=n;i++) { double temp=inf; ; ;j<=n;j++) { if (vis[j]) continue; ) { temp=dis[j]; k=j; } } ) return ; vis[k]=true; ;j<=n;j++) if (!vis[j]) { dis[j]=min(dis[j],max(dis[k],a[k][j])); } } } int main() { ; while (scanf("%d",&n),n) { ;i<=n;i++) { scanf("%d%d",&x[i],&y[i]); } ;i<=n;i++) { ;j<=n;j++) a[i][j]=sqrt((double )(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])); } dij(); printf(]+0.000005); } ; }