POJ 2349-Arctic Network【最小生成树】

最小生成树(Prim、Kruskal)算法,秒懂! 前言 在数据结构与算法的图论中,(生成)最小生成树算法是一种常用并且和生活贴切比较近的一种算法。但是可能很多人对概念不是很清楚,什么是最小生成树? 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。 通俗易懂的讲就是最小生成树包含原图的所有节点而只用最少的边和最小的权值距离。因为n个节点最少需要n-1个边联通,而距离就需要采取某种策略选择恰当的边。 学习最 阅读详情

题目描述

The Department of National Defence (DND) wishes to connect several northern outposts by a wireless network. Two different communication technologies are to be used in establishing the network: every outpost will have a radio transceiver and some outposts will in addition have a satellite channel. 
Any two outposts with a satellite channel can communicate via the satellite, regardless of their location. Otherwise, two outposts can communicate by radio only if the distance between them does not exceed D, which depends of the power of the transceivers. Higher power yields higher D but costs more. Due to purchasing and maintenance considerations, the transceivers at the outposts must be identical; that is, the value of D is the same for every pair of outposts. 

Your job is to determine the minimum D required for the transceivers. There must be at least one communication path (direct or indirect) between every pair of outposts.

Input

The first line of input contains N, the number of test cases. The first line of each test case contains 1 <= S <= 100, the number of satellite channels, and S < P <= 500, the number of outposts. P lines follow, giving the (x,y) coordinates of each outpost in km (coordinates are integers between 0 and 10,000).

Output

For each case, output should consist of a single line giving the minimum D required to connect the network. Output should be specified to 2 decimal points.

Sample Input

1
2 4
0 100
0 300
0 600
150 750

Sample Output

212.13

题意

需要自己计算边权的最小生成树,然后选需要建立的第k小边。

写这一篇的原因:

  1. 题意是选择第p-s个边,需要读懂才能选对。
  2. 写完一直是Output Limit Exceeded,但是并没有发现多输出了什么,后来发现了两个错误,一个坐标应用double类型而不是int,一个是存边的结构体数组粗心少开了100倍,以此铭记!!
  3. 很久没更博了~

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;

const int Maxe = 250000;
const int Maxn = 505;

struct edge{
    int from,to;
    double val;
};
struct point{
    double x,y;
};
point pt[Maxn];
edge e[Maxe];

int par[Maxn];
int cnt,t,s,p;

bool cmp(edge e1, edge e2)
{
    return e1.val<e2.val;
}
void Init()
{
    for(int i = 0; i < Maxn; i++)
        par[i] = i;
}
int Find(int x)
{
    if(x==par[x])
        return par[x];
    else
        return par[x] = Find(par[x]);
}
bool Union(int x, int y)
{
    x = Find(x);
    y = Find(y);
    if(x!=y)
    {
        par[y] = x;
        return true;
    }
    else
        return false;
}
double Kruskal()
{
    int res = 0;
    sort(e,e+cnt,cmp);
    Init();
    for(int i = 0; i < cnt; i++)
    {
        if(Union(e[i].from, e[i].to))
        {
            res++;
            if(res == p-s)
                return e[i].val;
        }
    }
}


int main()
{
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d %d", &s, &p);
        cnt = 0;
        for(int i = 0; i < p; i++)
            scanf("%lf %lf", &pt[i].x, &pt[i].y);
        for(int i = 0; i < p-1; i++)
        {
            for(int j = i+1; j < p; j++)
            {
                e[cnt].from = i;
                e[cnt].to = j;
                e[cnt++].val = (double)sqrt((pt[i].x-pt[j].x)*(pt[i].x-pt[j].x)+(pt[i].y-pt[j].y)*(pt[i].y-pt[j].y));
            }
        }
        printf("%.2f\n", Kruskal());
    }
    return 0;
}

如有错误请指明~   ฅ●ω●ฅ

F5 Shape盾JSVMP核心检测点与无限并发Header生成实战(TikTok/航司) 本文深入剖析了F5 Shape盾结合JSVMP技术的核心风控机制,详细解读了其针对浏览器指纹、行为时序等多维度的检测逻辑。通过实战案例,分享了如何通过逆向分析、精准Hook关键检测点,并构建稳定、高并发的请求Header生成方案,以应对TikTok、航司等平台的高级反爬挑战。 阅读详情

相关推荐

运放+三极管构建LED恒流驱动电路:原理、设计与调试全解析

在电子工程领域,恒流源是一种能够提供稳定输出电流的电路,其核心原理基于负反馈控制机制。通过将输出电流采样转化为电压信号,并与一个稳定的参考电压进行比较,系统自动调节功率器件的导通状态,从而抵消输入电压波动或负载变化带来的影响,实现电流恒定。这种技术对于驱动LED、激光二极管等电流敏感型器件具有重要价值,能确保亮度、色温的一致性,并延长器件寿命。本文以经典的运放结合三极管方案为例,深入剖析其如何实现精准的电流“钳位”。该方案利用通用运算放大器作为比较器,配合三极管构成调整管,通过采样电阻实时监测电流,形成了一

weixin_42525800的博客 492

最小生成树

最小生成树总结

ZhuRanCheng的博客 3万+

用PyTorch实战清华SSVEP数据集:手把手教你搭建第一个脑机接口分类模型(附完整代码)

本文详细介绍了如何使用PyTorch实战清华大学SSVEP数据集,从数据预处理到CNN模型构建的全流程。通过手把手教学,帮助读者搭建第一个脑机接口分类模型,特别针对数据维度转换等关键难点提供可视化解析,并附完整代码实现。

weixin_42566121的博客 351

最小生成树详解

最小生成树来啦!

m0_69349401的博客 1万+

transformer中QKV的通俗理解(剩女与备胎的故事)

用vit的时候读了一下transformer的思想,前几天面试结束之后发现对QKV又有点忘记了, 写一篇文章来记录一下 参考链接: 哔哩哔哩:在线激情讲解transformer&Attention注意力机制(上)在线激情讲解transformer&Attention注意力机制(上)_哔哩哔哩_bilibiliAttention is all you need介绍 更具体的介绍可以去阅读论文在Attention is all you need这篇文章中提出了著名的Transformer模型Transforme

Peter的博客 1万+

T分布和T检验的理解,Python代码实现T检验的计算

每天学习一点,每天进步一点。 声明:本人所有的原创,都是自己在学习过程中的记录点滴,不一定都是对的,肯定也会有一些错误的想法。所以大家看一看就好,不可尽信。当然也欢迎指出。 T分布 定义,有来自标准正态分布的样本X ~ N(0,1),和来自卡方n分布的Y ~ X2(n), 那么有 Z= X/√(Y/n) 成为符合自由度为n的T分布 我们用Python代码画一下他的图形 # 给一个自由度,返回这个自由度的卡方分布 X²(n) def product(n): n = np.ceil(n).astype

PY_smallH的博客 8485

图详解第三篇:最小生成树(Kruskal算法+Prim算法)

最小生成树:Kruskal算法+Prim算法

m0_70980326的博客 2万+

“探索thumbdata4文件的奥秘:编程中的神秘存在“

综上所述,thumbdata4文件在编程中是一个常见的存在,与图库应用程序和图片浏览器密切相关。通过使用适当的库和工具,我们可以读取和处理thumbdata4文件中的缩略图数据,以提供更好的用户体验。我们首先读取8字节的块头,其中包含了下一个缩略图块的大小。你可以根据自己的需求来定义对块数据的处理方式,例如将其保存为图像文件或进行其他的分析操作。thumbdata4文件通常以二进制格式存储,其中包含着设备上浏览过的图片的缩略图。因此,你可能需要根据具体的thumbdata4文件结构进行适当的解析和处理。

JieLun_C的博客 792

poj2349 Arctic Network 最小生成树

poj2349 表示刚开始读题就读了n久没有读明白。。。明白了题意以后这题真真是个套模板的题 题意:哨站有两种通信方式:通过卫星和通过建立无线网络,通过卫星可以任意通信, 通过无线网络那么距离不能超过D,求这个最小距离D。 思路:s代表了可以扔掉s-1条边,p表示点 我采用了kruskal算法,在建立好的最小生成树中去掉s-1条边,那么返回上一个的权值w即可。 #include #in

竹丙丙丙丙 404

BMD101传感器协议解析与STM32实现(LCD显示波形)

1 前言 BMD101传感器是神念科技开发的心电传感器。目前有一些商家开发了BMD101传感器模块,基本上都是利用蓝牙直接传输数据到PC或手机端。而本文介绍通过串口将数据传送给单片机,并在单片机上完成数据解析和心电波形LCD显示的功能。 2 通信协议解读 BMD101 通过 UART 接口通信。这是一个标准的 UART 接口,定义为 1 个起始位,8 个数据位,1 停止位格式,波特率 57600。 串口输出的数据包格式如下: 包括Header(帧头)、data payload(数据有效载荷)、CRC校验

weixin_44509533的博客 9287

Flink CDC 中 StartupOptions 模式详解

Flink CDC 的 StartupOptions 模式用于指定作业启动时从源数据读取数据的起始位置,不同的模式适用于不同的业务场景,可满足多样化的数据处理需求,主要有 Initial 模式、Earliest 模式、Latest 模式、SpecificOffset 模式和 Timestamp 模式。

RodJohnsonDoctor的专栏 849

(最小生成树)POJ2349Arctic Network

POJ2349Arctic Network 题意&思路: 给你p个点和s-1条免费边,问使两两点连通的最小的最长边。 求第p-s条最长边,kruskal。用%lf记得交c++。 代码: #include<iostream> #include<stdio.h> #include<stdlib.h> #include<algorithm> #in...

Z7784562的博客 293

RAG系统中Reranker模型选型实战

本文详细介绍了RAG系统中Reranker模型选型实战,希望能对学习RAG的同学们有所帮助。 文章目录 1. 前言 2. 思路解析 3. 测评数据集构建 3.1 步骤一 3.2 步骤二 3.3 数据示例 3.4 总结 4. 实战代码 4.1 本地模型 4.2 使用第三方的Reranker模型API

herosunly的博客 17万+

POJ 2349 Arctic Network (最小生成树)

POJ 2349 Arctic Network (最小生成树)

一枚空指针的博客 383

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Arctic Network/POJ 2349/最小生成树

Arctic Network/POJ 2349/最小生成树 题目 The Department of National Defence (DND) wishes to connect several northern outposts by a wireless network. Two different communication technologies are to be used in ...

weixin_45600829的博客 146

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

[poj2349 Arctic Network]最小生成树

Arctic Network Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10805   Accepted: 3542 Description The Department of National Defence (DND) wishes to connect se

When you go away 652

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

POJ2349 Arctic Network 最小生成树

链接: 2349 题意:一个平面网络中 有M个卫星N个站点,每两个站点之间可以用通讯器联系或用卫星联系,用通讯器联系的花销和距离有关,用卫星联系则不需要花销。给出每个站点的坐标(x,y),求这个网络最小生成树的最大边。 题解: M个卫星一共可以减去M-1条边,通过prim算法求出生成树中的所有(n-1)条边,通过排序,再减去(m-1)

旧时光 1007

POJ 2349 Arctic Network 最小生成树

POJ 2349 Arctic Network 最小生成树 Kruskal

LucienShui 640

POJ 2349 Arctic Network 最小生成树题解

本题也是使用Prime和Kruskal都可以的最小生成树的题解。 本题一点新意就是:需要除去最大的S-1个距离,因为可以使用卫星覆盖这些距离。 技巧:建图建有向图,速度快点,不用计算两边。 这里使用Prime,因为是稠密图。 #include #include #include #include #include #include using std::sort; c

靖空间 1378

POJ 2349 Arctic Network(进阶指南,最小生成树)

算法竞赛进阶指南,454页,最小生成树,kruskal 题目意思: 有n个 北部前哨站, 每个站都可以用无线电收发器来通信,也可以用卫星电话通信; 卫星电话不受距离影响,但数量少,只有s个。无线电收发器每一个前哨站都有,受距离影响, 距离D越远,成本越高。无线电通信距离D都是相同的。 题目要求,使得n个前哨站能直接或间接通信, 成本最少,也就是无线电收发器的通信距离D最短。 本题要点: 1、 有 s个卫星,那么最小生成树就可以少 s - 1 条边。 原来树有 n点,n - 1 条边, 减去 s - 1 条,

qq_38232157的博客 177

POJ 2349 Arctic Network 最小生成树 prim && kruscal

Arctic Network 克鲁斯卡尔(kruscal)或普里姆算法(Prim) 求最小生成树。 Arctic Network Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 13208 Accepted: 4284 Description The Department of National Defence (DND) wishes to connect several northern outposts by a w

jianjun的专栏 637

POJ 2349 Arctic Network(最小生成树思想)

POJ 2349 Arctic Network(最小生成树思想) http://poj.org/problem?id=2349 题意: 题意有点坑…        有P个站点需要远程通信,它们能通过两种方式来通信:无线电和卫星. 如果两个站点通过两个卫星接收器(坑,每个站点各一个卫星接收器)来通信的话,它们直接无论多远都行且不花钱. 如果两个站点通过无线电来通信的话,需要花钱且距离越长花费越

code 1288

POJ - 2349 Arctic Network 最小生成树

GDUT 2020寒假训练 图论 E 原题链接 POJ - 2349 Arctic Network E - Arctic Network 题目 Description The Department of National Defence (DND) wishes to connect several northern outposts by a wireless network. Two ...

xcy2001的博客 344

POJ 2349 Arctic Network 【最小生成树变形】

Description The Department of National Defence (DND) wishes to connect several northern outposts by a wireless network. Two different communication technologies are to be used in establishing the n

Kelisiya 395

POJ 2349 Arctic Network(最小生成树)

Arctic Network Time Limit: 2000MS   Memory Limit: 65536K       Description The Department of National Defence (DND) wishes to connect several northern outposts by a wirel

LYHVOYAGE的专栏 7784
上一篇: POJ 2031-Building a Space Station【最小生成树】
下一篇: POJ 3026-Borg Maze【最小生成树+bfs】
include_peng
博客等级 码龄9年 1粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值