把max()和min()用反了过了6组也是挺醉的,USACO数据也会这么水23333
一道写起来有点麻烦的题目,并查集+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 Cow Tours题解代码相关推荐

  1. usaco Cow Tours 牛的旅行

    Cow Tours 牛的旅行 农民 John 的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场. 但是就目前而言,你能看到至少有两个牧区不连通.这样,农民 John 就有 ...

  2. 信息学奥赛一本通 1343:【例4-2】牛的旅行 | 洛谷 P1522 [USACO2.4] 牛的旅行 Cow Tours

    [题目链接] ybt 1343:[例4-2]牛的旅行 洛谷 P1522 [USACO2.4] 牛的旅行 Cow Tours [题目考点] 1. 图论 最短路径 Floyd算法 Floyd算法时间复杂度 ...

  3. FPGA数字IC刷题58道Verilog题解代码及视频讲解【FPGA探索者】【同步/异步FIFO】【跨时钟】

    牛客 Verilog 刷题入门篇1~24 + 进阶篇1~34 题解代码,所有代码均能通过测试,配合视频讲解效果更佳.为避免内容冗余,本文只给出代码,部分题目给出必要说明. 很多题目本身出题有些问题,着 ...

  4. C++小木棍题解代码(备用)

    C++小木棍题解代码(备用) #include<iostream> #include<cstdio> #include<cstring> #include<a ...

  5. USACO 2022 December Contest, BronzeProblem 1. Cow College 题解

    以下是2022年-2023年USACO赛季第一个月的青铜组第一题,可以使用"计数数组+打擂台找最值"的思想,需要考生掌握一点算法才能通关.文章引用了官网题面,提供思考思路和代码,代 ...

  6. 【bzoj1612】【Usaco2008 Jan】Cow Contest奶牛的比赛 题解代码

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1612 题解: 对于这种题我们发现可以dfs求出一共有多少头牛比他强,一共有多少头牛比他弱 ...

  7. 【USACO 2.3.4】Cow Tours 牛的旅行

    题目描述 农民 John的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场.但是就目前而言,你能看到至少有两个牧场通过任何路径都不连通.这样,Farmer John就有多个 ...

  8. usaco Cow Tours

    题意是给出一个不连通的图,然后定义了一个直径:联通分量里最短距离最长的两个点之间的距离. 求将一个不连通的图中的两个连通分量连接,生成的这个新分量的直径最小可以有多小,输出这个新直径. 做法是想用Fl ...

  9. usaco Arithmetic Progressions(看了题解)

    usaco也开始限时了,这题是搜索加剪枝.剪枝很关键.(哎........怎么才能不看题解解题啊) /* ID: jinbo wu LANG: C++ TASK: ariprog */ #includ ...

最新文章

  1. Distinct Subsequences@LeetCode
  2. 三角网导线平差实例_第讲(三角网条件平差.ppt
  3. java环境变量详解---找不到或无法加载主类
  4. Luogu P2341 [HAOI2006]受欢迎的牛
  5. latex图片标题居中
  6. ACM001 Quicksum
  7. js模块化编程之彻底弄懂CommonJS和AMD/CMD!
  8. Android 2048游戏开发
  9. Java内存与垃圾回收调优
  10. 看我如何解决tomcat控制台内容输出乱码的问题?
  11. 区块链中心化业务必须基于中心化平台吗?
  12. 基于QT实现简单的音乐播放器
  13. js数据的编码和解码
  14. 昂达平板装linux系统下载,U盘启动:昂达平板用上了Ubuntu Uudgie 16.10 Linux操作系统...
  15. 服务器带宽打开网页很慢,为什么网速很快,但打开的网页速度却很慢?
  16. [ECCV 2020] Synthesize then Compare: Detecting Failures and Anomalies for Semantic Segmentation
  17. 华为Mate40 Pro 66w充电器冒火花怎么回事?
  18. Java核心编程随笔
  19. html中搜索栏怎么写,html搜索框怎么做
  20. 数据分析入门——美国各州人口分析

热门文章

  1. windows GDI+ 绘图的简单封装
  2. 利用python提取图像轮廓
  3. MLY -- 14.Evaluating multiple ideas in parallel during error analysis
  4. 微信小程序云开发 操作数据库-简单数据的查询
  5. 网咖虚拟服务器主机,为什么网吧的主机这么便宜??但是玩大型游戏又不卡
  6. 前端面试题 Doctype作用是什么?严格模式与混杂模式如何区分?他们之间有何意义?
  7. 我国20年农药年施用量增百万吨 生产方式需反思
  8. Python中如何计算时间差
  9. 计算机基础——计算机网络
  10. 有限差分——图像求偏导