usaco Cow Tours
来源:互联网 发布:oracle数据库密码忘了 编辑:程序博客网 时间:2024/06/10 12:27
多源最短路
弗洛伊德算法+并查集
很适合用来训练图论的思维
/*ID:zhdxzwj1LANG:C++PROG:cowtour*/#include <bits/stdc++.h>double ma[152][152];char flag[152][152];char fei;double d[152];double dd[152]={0};struct vertex{ int x,y;}v[152];int bing[152];int main(){ freopen("cowtour.in","r",stdin); freopen("cowtour.out","w",stdout); int n; scanf("%d",&n); int i,j,k; for(i=0;i<n;i++) { scanf("%d %d",&v[i].x,&v[i].y); } memset(bing,-1,152*sizeof(int)); scanf("%c",&fei); //构建原始的图信息,包括两点距离计算,并查集产生 for(i=0;i<n;i++) { for(j=0;j<n;j++) { scanf("%c",&flag[i][j]); if(flag[i][j]=='1') { if(bing[i]==-1&&bing[j]==-1) { bing[j]=i; bing[i]=i; } else { if(bing[i]==-1) { bing[i]=bing[j]; } else if(bing[j]==-1) { bing[j]=bing[i]; } else { for(k=0;k<n;k++) { if(bing[k]==bing[j]) bing[k]=bing[i]; } } } ma[i][j]=sqrt((v[i].x-v[j].x)*(v[i].x-v[j].x)+(v[i].y-v[j].y)*(v[i].y-v[j].y)); } else { if(i!=j) ma[i][j]=INT_MAX; else ma[i][j]=0; } } scanf("%c",&fei); } for(i=0;i<n;i++) if(bing[i]==-1) bing[i]=i;//Floyd算法最短路 for(k=0;k<n;k++) for(i=0;i<n;i++) for(j=0;j<n;j++) { ma[i][j]=std::min(ma[i][j],ma[i][k]+ma[k][j]); }//连通子图的每个点对应的直径(不一定是最大的) for(i=0;i<n;i++) { d[i]=0; for(j=0;j<n;j++) { if(ma[i][j]!=INT_MAX) d[i]=std::max(d[i],ma[i][j]); } } k=5; double ans=INT_MAX; //每个子图的最大直径 for(i=0;i<n;i++) for(j=0;j<n;j++) { if(bing[i]==bing[j]) { dd[bing[i]]=std::max(dd[bing[i]],ma[i][j]); } } //尝试连接两个牧场,比较新直径和两个原始直径,最大者即为新的直径 for(i=0;i<n;i++) for(j=0;j<n;j++) { if(bing[i]!=bing[j]) { double temp; temp=std::max(std::max(d[i]+d[j]+sqrt((v[i].x-v[j].x)*(v[i].x-v[j].x)+(v[i].y-v[j].y)*(v[i].y-v[j].y)),dd[bing[i]]),dd[bing[j]]); ans=std::min(temp,ans); } } printf("%.6f\n",ans); return 0;}
0 0
- USACO Cow Tours 题解
- 【图论】【USACO】Cow Tours
- usaco Cow Tours
- USACO:PROB Cow Tours
- USACO-Cow Tours
- USACO--2.4Cow Tours
- usaco Cow Tours
- usaco Training Cow Tours
- USACO:Cow Tours解题报告
- USACO 2.4.3 Cow Tours
- Usaco 2.4 Cow Tours(Floyd)
- USACO 2.4 Cow Tours (cowtour)
- USACO Cow Tours, Floyed-Warshall, FloodFill(BFS)
- USACO section2.4 Cow Tours题解&代码
- USACO 牛的旅行 Cow Tours
- Cow Tours
- USACO Section 2.4 Cow Tours - 考虑要全面阿...
- USACO section 2.4 Cow Tours(并查集+最短路)
- 我的生活却了什么
- 【HDU1845】【完备匹配】
- const相关用法(Effective C++_3)
- 剑指offer 二进制中1的个数
- Windows7 x64系统下安装Nodejs并在WebStorm 9.0.1下搭建编译less环境
- usaco Cow Tours
- 网易游戏2016实习生招聘笔试题目--推箱子
- ping结果中TTL是什么意思
- HDU 4704 SUM 整数快速幂+费马小定理
- Codeforces 550 C. Divisibility by Eight
- PipelineStudio v3.6.1.0 Final-ISO 1CD(稳定版,化工管道仿真技术)
- 并发(Concurrent)与并行(Parallel)的区别
- Schlumberger.OilField.Manager.V2014.1(OFM)油田日常监控和管理软件包
- 神经网络的cost function