【2024.9.27】[JSOI2010] 部落划分

news2024/9/27 22:18:11

题目描述


题目分析

将野人居住地看作顶点,之间的距离看作边,部落看作集合,考虑用最小生成树Kruskal算法解决,同一个部落里的居住点就构成一个连通分量。使用Kruskal算法时,设初始部落数为n,每有两个原本不在一个集合的顶点被合并,意味着减少一个部落。当部落数减少为k时,下一个最小的待合并边即为本题答案。


我的代码

#include <iostream>
#include <algorithm>
#include <cmath>
#include <map>
using namespace std;
int par[1000000];
pair<int,int> V[1000]; //坐标
multimap<float, int> E;
multimap<float, int>::iterator it;
//并查集初始化
void init(int x) {
	for (int i = 0; i < x; i++)
	{
		par[i] = i;
	}
}
//查询
int find(int x) {
	if (par[x] == x) {
		return par[x];
	}
	else {
		par[x] = find(par[x]);
		return par[x];
	}
}
//合并
void unite(int x, int y) {
	x = find(x);
	y = find(y);
	par[x] = y;
}
//主函数
int main(void) {
	int n;//居住点数量
	int k;//部落数量
	//输入
	cin >> n >> k;
	for (int i = 0; i < n; i++)
	{
		cin >> V[i].first >> V[i].second;
	}
	//初始化
	init(1000000);//并查集初始化
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			float dis = sqrt(pow(abs(V[i].first - V[j].first), 2) + pow(abs(V[i].second - V[j].second),2)); //计算距离
			int index = i + j * 1000; //计算序号
			E.insert(pair<float, int>(dis, index)); //容器排序
		}
	}
	it = E.begin();
	int num = n;
	float ans;
	while (it != E.end()) {
		int x = (*it).second % 1000;
		int y = ((*it).second - x) / 1000;
		if (find(x) == find(y)) {
		}
		else if(num != k){
			unite(x, y);
			num--;
		}
		else {
			ans = (*it).first;
			break;
		}
		it++;
	}
	printf("%.2f", ans);
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2171241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Splashtop 在2024年 CybersecAsia 读者之选奖项评选中荣获新星奖

2024年9月26日 新加坡 安全远程访问和支持解决方案领域的领先企业 Splashtop 在第五届 CybersecAsia 读者之选奖项评选中荣获新星奖。该奖项的评选人员包括首席信息安全官、技术领袖和网络安全从业者&#xff0c;旨在表彰亚太地区网络安全领袖在行业中发挥的关键作用、取得的创…

FileZilla Server 黑白单移除

我使用FileZilla Server 搭建了一个FTP服务在内网使用&#xff0c;主要用于做数据备份的。 有一台服务器一直可以正常连接&#xff0c;突然有一天不能连接了。一开始我以为是FTP服务器出问题了&#xff0c;就一直没管。后来我测试了一下其他IP都可以正常连接FTP服务器&#xff…

高校教师成果管理小程序的设计与实现springboot(lw+演示+源码+运行)

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱&#xff0c;出错率高&#xff0c;信息安全…

连锁收银系统的五大功能 选择开源收银系统三要素

连锁收银系统的五大功能&#xff0c;很多新手是不清楚的&#xff0c;老手也只是知道一些大概&#xff0c;今天&#xff0c;商淘云为大家分享收银系统的五大功能&#xff0c;尤其是第五个&#xff0c;大部分人不清楚&#xff0c;有的企业前面选了不合适的收银系统&#xff0c;导…

漏洞挖掘 | 发现隐藏子域的虚拟主机

高效虚拟主机发现的工具和技术 在进行外部渗透测试或漏洞赏金狩猎时&#xff0c;我们从各个角度探索目标系统&#xff0c;收集尽可能多的信息来识别潜在的攻击向量。这涉及识别所有可用的资产、域和子域。 在这个过程中&#xff0c;我们关注的事情之一就是枚举虚拟主机。通过…

一文速学-知识图谱从零开始构建实战:知识图谱的基本概念

前言 目前设计到很多企业专业领域的知识库构建基本都没有很好的思路对现有的领域知识作一个很好的思路拆分理解&#xff0c;想要落地私域多模态大模型的应用我想还是绕不过想现有的知识库转换为知识图谱&#xff0c;知识图谱不论是对业务还说还是对各个员工来说都是对业务清晰…

从响应到预见:前瞻性客户服务策略的实践与探索

在快速变化的商业环境中&#xff0c;客户服务已不再是简单的需求响应与问题解决&#xff0c;它正逐步演变为企业竞争力的核心要素之一。传统的“响应式”服务模式虽能满足基本的客户需求&#xff0c;但在追求极致客户体验和构建长期忠诚度的今天&#xff0c;显然已显不足。因此…

【巅峰算力,静谧之作】4卡4090GPU深度学习“静音”服务器

各位同仁&#xff0c;随着人工智能浪潮的汹涌澎湃&#xff0c;我们正步入一个前所未有的创新纪元。在这个充满挑战与机遇的时代&#xff0c;我愈发频繁地在工作场景中邂逅那些致力于深度学习探索的智者们。他们&#xff0c;对计算力的渴望如同对知识的追求一般&#xff0c;永无…

HTX DAO重磅亮相Crypto Summit 2024:强势布局CIS地区,推动全球化扩张

9月25日-26日&#xff0c;HTX DAO独家赞助Crypto Summit 2024大会注册处&#xff0c;并以商业伙伴身份亮相。此举为HTX DAO展示其独特的去中心化治理模型提供了机会&#xff0c;将进一步扩大HTX DAO及HTX在CIS地区的市场份额和影响力&#xff0c;吸引更多的加密社区成员、开发者…

实现org.springframework.beans.factory.InitializingBean 接口--初始化bean

1、案例 import com.dzwl.easy.report.core.service.IUserDescService; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;Component public c…

flink:java集成flink实现流数据处理(一)

文章目录 0. 引言1. flink安装2. 流数据处理程序依赖包简介流处理4个部分 3. 程序调用4. 总结 0. 引言 Apache Flink作为一款高性能的流处理框架&#xff0c;已成为企业级流数据处理的优选方案。本文将带领读者深入了解如何利用Java语言集成Flink&#xff0c;实现高效、可靠的…

Tomcat CVE-2017-12615 靶场攻略

漏洞描述 当 Tomcat运⾏在Windows操作系统时&#xff0c;且启⽤了HTTP PUT请求⽅法&#xff08;例如&#xff0c;将 readonly初始化参数由默认值设置为false&#xff09;&#xff0c;攻击者将有可能可通过精⼼构造的攻击请求数据包向服务器上传包含任意代 的 JSP ⽂件&#xf…

Kubernetes 资源详解

1. Namespace Namespace 是 kubernetes 系统中的一种非常重要资源&#xff0c;它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下&#xff0c;kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中&#xff0c;可能不想让两个Pod之间进行…

鸡汤,你在生活中有哪些观人术和识人技巧?

看有没有边界感吧&#xff0c;npd一般没有边界感。还有就是三角测量 吧&#xff0c;可能就是把你和其他人对比看你对他好不好了。还有就是看他有没有情感吧&#xff0c;npd情感这方面可以说一无所有。我是npd不过npd也就那样吧&#xff0c;不过别人怎么看我并不重要&#xff0…

AlphaFold3 | 详解 AlphaFold3 的模型结构及其在不同类型的预测实验中的表现

Jumper 本文将介绍 24 年 5 月发布的 Alaphafold3&#xff0c;其以“使用 AlphaFold 3 进行生物分子相互作用的精确结构预测”为标题发表在《nature》上&#xff0c;通讯作者为 Jumper。 Jumper 具有物理、化学、生物和计算方面的丰富背景。Jumper 本科学的是物理和数学&#…

excel数据常用函数学习记录

1、VLOOKUP查询函数&#xff0c;匹配数据返回 vlookup(查找值,查找范围,要查找的值在第几列,0表示精确查找) enter键返回 例如&#xff1a;在E列中返回&#xff0c;A列的值与D列一致的对应的B值。只会返回查找到的第一个 如果需要把查找到的匹配的数据都返回到单元格中&…

Power Automate 设置流Owner不生效的bug

在查找某个功能没生效时&#xff0c;定位到是一个Power automate的流停了&#xff0c;查看原因是因为创建流的owner被disable了 但是当把流的owner更新为可用的用户时&#xff0c;流依旧没被触发&#xff0c;触发的条件很简单&#xff0c;某个表的记录创建时&#xff0c;因为是…

白嫖10个免费视频剪辑素材网站,新手必备。

视频剪辑不知道去哪里找素材&#xff0c;那就看看这10个网站吧&#xff0c;免费下载&#xff0c;赶紧收藏&#xff01; 视频素材 1、菜鸟图库 视频素材下载_mp4视频大全 - 菜鸟图库 菜鸟图库网素材非常丰富&#xff0c;网站主要还是以设计类素材为主&#xff0c;高清视频素材…

51单片机应用开发(进阶)---数码管显示按键“加”“减”计数

实现目标 1、巩固按键操作 2、巩固数码管显示操作 一、内容描述 功能描述&#xff1a;1、开机显示10&#xff0c;每按一次K1 &#xff0c;数码管计数值加1&#xff0c;当加到20,&#xff0c;再按K1&#xff0c;数值一直停留在20&#xff1b;2、每按一次K2&#xff0c;数码管计…

Pencils Protocol上线 Vaults 产品,为 $DAPP 深入赋能

Pencils Protocol 是 Scroll 生态一站式综合收益平台&#xff0c;该平台以 DeFi 功能作为抓手&#xff0c;基于 Farming、Vaults、Auction 等功能不断向 LRT、LaunchPad、AI、FHE、RWA 等领域深入的拓展。 近期 Pencils Protocol 生态不断迎来重磅进展&#xff0c;一个是 $DAPP…