题目

给一个无向图,要求从点1到点2的一条路,要求这条路上的边的最大值尽量小。

输入输入

多组数据,每个数据n+1行,分别是n和点的坐标
2
0 0
3 4
3
17 4
19 4
18 5
0

输出

这条路上的边的最大值
Scenario #1
Frog Distance = 5.000

Scenario #2
Frog Distance = 1.414


解题思路

这道题老师放在最短路里,害的我被坑了好久
就是求一个最小生成树,然后求这个生成树中点一到点二的路上求一个最大值。这里用并查集。


代码

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
struct woc{int head,tail;double w;
};
int n,ti,lt[40001],kk;
double xx[201],yy[201],maxs;
woc a[40001];
int find(int x)
{if (x!=lt[x]) return lt[x]=find(lt[x]);else return x;
}
bool cmp(woc x,woc y)
{return x.w<y.w;
}
int main()
{while (true){ti++;scanf("%d",&n);if (n==0) break;    for (int i=1;i<=n;i++){scanf("%lf%lf",&xx[i],&yy[i]);}kk=0;for (int i=1;i<=n;i++)for (int j=1;j<=n;j++){if (i!=j) {a[++kk].w=sqrt(abs(xx[i]-xx[j])*abs(xx[i]-xx[j])+abs(yy[i]-yy[j])*abs(yy[i]-yy[j]));//求距离a[kk].head=i;a[kk].tail=j;//记录线}lt[i]=i;}   sort(a+1,a+kk+1,cmp);//按权值排序maxs=0;for (int i=1;i<=kk;i++){int fa=find(a[i].head);int fb=find(a[i].tail);//寻找祖先if (fa!=fb){if (fa<fb) lt[fa]=fb;else lt[fb]=fa;//给一个固定的值,这里用最大的那个if (find(1)==find(2)) {maxs=a[i].w;break;}//如果已经把点1和点2连接了//(因为这里排了序所以是最小的)}}printf("Scenario #%d\nFrog Distance = %.3lf\n\n",ti,maxs);//输出}
}


附上原题

Description
有一只叫做Freddy的青蛙坐在湖中央的一块石头上,突然间他发现另一只青蛙(她的名字是Fiona)坐在另一颗石头上。他想要过去找她,但是因为湖水很脏,到处充满着游客的防晒油,所以他决定用跳的,而不要用游的。
不妙的是Fiona的石头离他的距离超出他所能跳的范围。因此Freddy考虑利用其它的一些石头当作中继站,因此他就可以跳比较小的距离(或许要跳许多次)去找Fiona。要这样子连续的跳,很明显的Freddy一次能跳的距离必须至少和这一串石头间的距离最大的距离一样。因此,介于石头间的蛙跳距离(frog distance,人类也称之为minmax distance)定义为要从Freddy所在的石头要跳到Fiona所在的石头的路径中,最小必须要跳的距离。给你Freddy所在的石头、Fiona所在的石头,以及湖中所有其它石头的坐标,你的任务是算出介于Freddy和Fiona所在石头间的蛙跳距离。

Input
输入含有多组测试数据。每组测试资料的第一列有1个整数n,代表石头的数目(2 <= n <= 200)。接下来的n列每列有2个整数xi,yi(0 <= xi,yi <= 1000)代表第i颗石头的坐标。其中第一颗为Freddy所在的石头,第二颗为Fiona所在的石头,其它的n-2颗石头上则是空的。
每组测试数据后有一空白列,当n=0时代表输入结束。请参考Sample Input。

Output
对每一组测试数据,输出一列这是第几组测试数据,以及一列蛙跳距离。
每组测试数据后亦输出一空白列。请参考Sample Output。

Sample Input
2
0 0
3 4
3
17 4
19 4
18 5
0

Sample Output
Scenario #1
Frog Distance = 5.000

Scenario #2
Frog Distance = 1.414

ssl1615-Frogger【图论,最小生成树,并查集】相关推荐

  1. 图论:并查集求最小环

    图论:并查集求最小环 概念: 图.路.环: 一个有向图由G=(N,A)表示,其中N表示节点集,A表示边集边(i,j)为一有序对,i为出发节点,j为终止节点.在无向图中(i,j)与(j,i)一致. 路是 ...

  2. 图论8 并查集深入解析——边带权并查集和拓展域并查集和最小生成树

    我们先复习一下并查集的基本知识. 并查集的三个操作:查询,初始化,合并:并查集的结构:操作方法以及代码:路径压缩优化(详见<图论7 弗洛伊德&并查集算法详解>). 补充一下,并查集 ...

  3. hdu 1233 还是畅通工程 Kruskal 最小生成树 并查集

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1233 模板题,kruskal求最小生成树. 并查集是个好东西啊  就是注意一点 输入边的信息时,角标 ...

  4. 4th 【最小生成树并查集】征兵

    征兵 [题目描述]: 一个国王,他拥有一个国家.最近他因为国库里钱太多了,闲着蛋疼要征集一只部队要保卫国家.他选定了N个女兵和M个男兵,但事实上每征集一个兵他就要花10000RMB,即使国库里钱再多也 ...

  5. P1455-搭配购买【图论,并查集,dp,背包】

    正题 题目链接: https://www.luogu.org/problemnew/show/P1455 大意 有n个商品,给出价值和价格.有m组搭配,如果买了其中一个就得买另一个,给出你拥有的钱,求 ...

  6. ssl1312ZP2502-[HAOI2006]旅行【图论,并查集】

    正题 题目链接: https://www.luogu.org/problemnew/show/P2502 大意 有n个旅游景点,m条路,每条路有个限速,要求求一个点到另一个点的最大速度和最小速度的比最 ...

  7. ssl1222-矩形【图论,并查集】

    正题 大意 有n个正方形,求块数. 解题思路 用并查集求块数 代码 #include<cstdio> #include<algorithm> using namespace s ...

  8. POJ2524——宗教(Ubiquitous Religions)【图论,并查集】

    正题 题目链接: http://poj.org/problem?id=2524 大意 有n个学生,告诉你哪两个学生的宗教相等,求校园里有多少个宗教. 解题思路 并查集链接就好了 代码 #include ...

  9. POJ1611-嫌犯【图论,并查集】

    正题 题目链接: http://poj.org/problem?id=1611 大意 有n个人,m个组,有一个流感嫌犯,流感嫌犯会将所在的组的所有人变成流感嫌犯,求流感嫌犯的数量. 解题思路 并查集将 ...

  10. hdu 1232 畅通工程 最小生成树 并查集

    1232的连接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 #include <iostream>#include <cstdio& ...

最新文章

  1. 从零开始学python数据分析-从零开始学Python数据分析与挖掘 PDF 扫描版
  2. python与数据思维基础笔记_Python小课笔记--Python基础:数据和函数(二)
  3. 用C#二次封装虹软arcface
  4. JS获取当前日期及时间
  5. 将微服务注册到Eureka Server上
  6. mysql 集群备份脚本_mysqldump结合脚本的备份方案
  7. Tomcat、JDK 历史版本下载地址
  8. 一起谈.NET技术,asp.net Ajax ---AutoComplete控件使用
  9. Linux状态监控在root下可用,监控linux状态
  10. 嵌入式工具——smartmontools
  11. 2020年CSDN技术人内推活动 千里马专区职位列表
  12. ssm-学子商城-项目第十二天
  13. ExoPlayer 源码阅读小记--缓存模块及获取HLS已缓存大小
  14. 极乐净土歌词-罗马音
  15. 腾讯cdn设置 php,教你利用腾讯云 cdn 加速网站静态资源
  16. Beyond Compare 过期解决办法
  17. html省市多级联动下拉框,基于javascript实现全国省市二级联动下拉选择菜单
  18. 什么是指令重排序?为什么要重排序?
  19. 【67】PCIe Power Management和linux对PME的处理
  20. 【我参加NVIDIA Sky Hackathon】CV篇

热门文章

  1. qt 从文件中读出数据显示在表格中_QT中有什么控件可以实现向excel的表格显示,qt数据存储到Excel表格...
  2. 机器学习之数据预处理——归一化,标准化
  3. 7-8 哈利·波特的考试 (25 分)(详解+思路分析)真香啊
  4. 「offer来了」2种递进学习思维,24道计网题目,保姆级巩固你的计网知识体系
  5. 值得关注的HTML基础
  6. [Java基础]反射案列
  7. [Java基础]TreeSet集合概述和特点
  8. 蓝桥杯2015初赛-奖券数目-枚举
  9. python可变参数和关键字参数位置_python中函数的默认参数和可变长参数如何排列?...
  10. PAT-A Maximum Subsequence Sum