| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> luogu P2872 [USACO07DEC]Building Roads S -> 正文阅读 |
|
[数据结构与算法]luogu P2872 [USACO07DEC]Building Roads S |
原题链接: ? ? ? ?[USACO07DEC]Building Roads S - 洛谷https://www.luogu.com.cn/problem/P2872 题目描述Farmer John had just acquired several new farms! He wants to connect the farms with roads so that he can travel from any farm to any other farm via a sequence of roads; roads already connect some of the farms. Each of the N (1 ≤ N ≤ 1,000) farms (conveniently numbered 1..N) is represented by a position (Xi, Yi) on the plane (0 ≤ Xi ≤ 1,000,000; 0 ≤ Yi ≤ 1,000,000). Given the preexisting M roads (1 ≤ M ≤ 1,000) as pairs of connected farms, help Farmer John determine the smallest length of additional roads he must build to connect all his farms. 给定?n?个点的坐标,第?i?个点的坐标为 (xi?,yi?),这?n?个点编号为?1?到?n。给定?m?条边,第?i?条边连接第 ui??个点和第 vi??个点。现在要求你添加一些边,并且能使得任意一点都可以连通其他所有点。求添加的边的总长度的最小值。 输入格式* Line 1: Two space-separated integers: N and M * Lines 2..N+1: Two space-separated integers: Xi and Yi * Lines N+2..N+M+2: Two space-separated integers: i and j, indicating that there is already a road connecting the farm i and farm j. 第一行两个整数?n,m?代表点数与边数。 输出格式* Line 1: Smallest length of additional roads required to connect all farms, printed without rounding to two decimal places. Be sure to calculate distances as 64-bit floating point numbers. 一行一个实数代表添加的边的最小长度,要求保留两位小数,为了避免误差, 请用?6464?位实型变量进行计算。 输入输出样例输入 #1复制 4 1 1 1 3 1 2 3 4 3 1 4 输出 #1复制 4.00 说明/提示数据规模与约定对于 100%?的整数,1≤n,m≤1000,1≤xi?,yi?≤10^6,1≤ui?,vi?≤n。 说明Translated by 一只书虫仔。 Solution: ? ? ? ? 题目大意是给你n个坐标,m条边将这n个坐标一部分连起来,然后问还要添加的边距离的最小值是多少 ? ? ? ? 题目可以比较明显的看出解法是最小生成树,但生成的联通块不一定是最小生成树,但其实我们可以将已经连好的边视为边权为0,这样就可以用最小生成树的解法了 ? ? ? ? 这里使用kruskal算法 ? ? ? ? 我们先将所有的结点两两连接的边权预处理出来,然后排序,而已经连好的边链接的点先加入并查集,接下来直接使用kruskal的模板就ok了 code:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 17:34:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |