usaco cowtour

来源:互联网 发布:淘宝模特拍摄布光 编辑:程序博客网 时间:2024/06/05 08:34
/*ID:13975101TASK:cowtourLANG:C*/#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#define For(i,j,k) for(i=j;i<=k;++i)int x[160],y[160],n;double a[160][160],md[160];double jl(int x1,int y1,int x2,int y2){return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}int main(){freopen("cowtour.in","r",stdin);freopen("cowtour.out","w",stdout);char cc;int i,j,k;scanf("%d",&n);For(i,1,n) scanf("%d%d\n",&x[i],&y[i]);For(i,1,n) {For(j,1,n) {scanf("%c",&cc);a[i][j]=cc-48;if (a[i][j]==0)a[i][j]=9999999;elsea[i][j]=jl(x[i],y[i],x[j],y[j]);}scanf("%c",&cc);}For(k,1,n) {For(i,1,n) {if (i==k) continue;For(j,1,n) {if (i==j||k==j) continue;if (a[i][k]+a[k][j]<a[i][j])a[i][j]=a[i][k]+a[k][j];}}}For(i,1,n) {For(j,1,n) {if (a[i][j]>md[i]&&a[i][j]!=9999999)md[i]=a[i][j];}}double minn=9999999;For(i,1,n) {For(j,1,n) {if (i==j) continue;if (fabs(a[i][j]-9999999)<0.000001) {double tt=jl(x[i],y[i],x[j],y[j])+md[i]+md[j];if (tt<minn) minn=tt;}}}For(i,1,n)if (minn<md[i]) minn=md[i];printf("%.6lf\n",minn);return 0;}

1 0
原创粉丝点击