USACO section2.4 Cow Tours题解&代码
2015-03-01 16:00
555 查看
把max()和min()用反了过了6组也是挺醉的,USACO数据也会这么水23333
一道写起来有点麻烦的题目,并查集+floyd就可以了…
一道写起来有点麻烦的题目,并查集+floyd就可以了…
/* ID:rainbow16 LANG:C++ TASK:cowtour */ #include<iostream> #include<stdio.h> #include<math.h> using namespace std; char temp[155]; int fa[1000],r[155][155],x[155],y[155],n; double d[155][155],ma[155],ans,ansl=0xfffffff; double dis(int i,int j) { return sqrt((double)((x[i]-x[j])*(x[i]-x[j]))+(double)((y[i]-y[j])*(y[i]-y[j]))); } void init(void) { for(int i=1;i<1000;i++) fa[i]=i; } int fin(int x) { if(fa[x]==x) return x; return fa[x]=fin(fa[x]); } void unio(int x,int y) { if(fin(x)!=fin(y)) fa[fin(x)]=fin(y); } void floyd(void) { for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i!=j && i!=k && j!=k && r[i][k] && r[j][k]) { r[i][j]=2; d[i][j]=d[i][j]?min(d[i][j],d[i][k]+d[j][k]):d[i][k]+d[j][k]; } } int main(void) { freopen("cowtour.in","r",stdin); freopen("cowtour.out","w",stdout); init(); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d%d",&x[i],&y[i]); for(int i=1;i<=n;i++) { scanf("%s",&temp); for(int j=1;j<=n;j++) { r[i][j]=temp[j-1]-'0'; if(r[i][j]) { unio(i,j); d[i][j]=d[j][i]=dis(i,j); ma[i]=max(ma[i],d[i][j]); ma[j]=max(ma[j],d[i][j]); } } } floyd(); for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) if(r[i][j]) { ma[i]=max(ma[i],d[i][j]); ma[j]=max(ma[j],d[i][j]); } for(int i=1;i<=n;i++) ans=max(ans,ma[i]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(fin(i)!=fin(j)) ansl=min(ansl,ma[i]+ma[j]+dis(i,j)); printf("%f\n",ans>ansl?ans:ansl); return 0; }
相关文章推荐
- USACO section2.4 The Tamworth Two题解&代码
- USACO section2.3 Longest Prefix题解&代码
- USACO section2.3 Cow Pedigrees题解&代码
- USACO section2.3 Money Systems题解&代码
- USACO section2.4 Bessie Come Home题解&代码
- USACO section2.3 Controlling Companies题解&代码
- USACO section3.1 Agri-Net题解&代码
- USACO section3.1 Humble Numbers题解&代码
- USACO section2.3 Zero Sum题解&代码
- USACO section2.4 Overfencing题解&代码
- USACO section2.2 Subset Sums题解&代码
- 【bzoj1611】【Usaco2008 Feb】Meteor Shower流星雨 (bfs)题解&代码
- USACO section 2.4 Cow Tours(并查集+最短路)
- 【bzoj1613】【Usaco2007 Jan】Running贝茜的晨练计划(dp) 题解&代码
- 【bzoj1607】【Usaco2008 Dec】Patting Heads (数学) 题解&代码
- 【bzoj 1600】【Usaco2008 Oct】建造栅栏 (递推) 题解&代码
- usaco-Section 2.4-Cow Tours
- 【bzoj1602】【Usaco2008 Oct】牧场行走 (暴力) 题解&代码
- USACO-Section 2.4 Cow Tours(最短路[Floyd])
- 【bzoj1612】【Usaco2008 Jan】Cow Contest奶牛的比赛 题解&代码