poj 2349

【代码超详解】POJ 2349 Arctic Network(Kruskal 算法) 一、题目描述 阅读详情

题意这样:就是有几个离的远的炮楼要通信,你可以想象他们在一片空海上,然后几个炮楼得通信啊,那有2种方法,一种是通过一个卫星,这个卫星能保证且只能保证两个炮楼间通信。另一种是炮楼里的每个人都有一个对讲机,他们可以通过这个东西与别的人通信,但对讲机功率有限,只能和一定功率能覆盖的范围内的炮楼里头的人说话。这个通信可以直接通,也可以通过中间的人转接你要通话的目标对象。所以设计算法求出来功率最小是多少就能保证这一圈炮楼里头所有人都可以CALL到对方。其中s代表卫星数,p代表炮楼数,然后输入这些炮楼的坐标。你去算功率最小是多少吧。

package com.liang.poj;

import java.util.Scanner;

public class Test2349Prim {
	static int num = 0;
	static int s = 0;
	static int p = 0;
	static int[][] coordinate = null;
	static double[][] brimCollection = null;
	static boolean[] visited = null;
	static double[] result = null;
	static boolean b = true;

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		num = scan.nextInt();
		while (num > 0) {
			s = scan.nextInt();
			p = scan.nextInt();

			brimCollection = new double[p][p];
			visited = new boolean[p];
			coordinate = new int[p][2];
			result = new double[p];

			for (int i = 0; i < coordinate.length; i++) { // 初始化coordinate,接收输入的每个城市的坐标
				coordinate[i][0] = scan.nextInt();
				coordinate[i][1] = scan.nextInt();
			}

			for (int i = 0; i < coordinate.length; i++) { // 初始化brimColeciont,将每个城市之间的距离转化为矩阵图
				for (int j = 0; j < coordinate.length; j++) {
					if (i != j) {
						int x = coordinate[i][0] - coordinate[j][0];
						int y = coordinate[i][1] - coordinate[j][1];
						brimCollection[i][j] = Math.sqrt(x * x + y * y);
						if (b) {
							result[j] = brimCollection[i][j];
						}
					}
				}
				b = false;
			}
			
			visited[0] = true;
			prim(p - 1);
			b = true;
			num--;

		}

	}

	public static void prim(int count) {
		while (count >= 1) {
			int lie = min();
			count--;
			for (int i = 1; i < result.length; i++) {
				if (!visited[i] && result[i] > brimCollection[lie][i]) {
					result[i] = brimCollection[lie][i];
					
				}
			}
		}

		double d = result[s + 1];
		int dmin = (int) Math.round(d * 100);
		System.out.println((double) dmin / 100);

	}

	public static int min() {
		double min = 0;
		int lie = 0;
		for (int i = 1; i < result[i]; i++) {
			if (!visited[i] && result[i] != 0) {
				min = result[i];
				lie = i;
				break;
			}
		}

		for (int i = 1; i < result.length; i++) {
			if (!visited[i] && result[i] != 0) {
				if (min > result[i]) {
					min = result[i];
					lie = i;
				}
			}
		}

		if (lie != 0) {
			visited[lie] = true;
		}

		return lie;
	}

}

uni-app蓝牙MTU设置失效探因:从20字节限制到跨设备兼容性实战 本文深入探讨了uni-app蓝牙开发中MTU设置失效的常见问题,特别是20字节限制的成因及解决方案。通过分析设备兼容性、蓝牙协议栈特性和系统版本差异,提供了智能延迟策略、设备特征检测和渐进式MTU提升等实战方案,帮助开发者优化蓝牙数据传输效率。 阅读详情

相关推荐

实战指南:R语言多组倾向评分逆概率加权(IPTW)建模与结果解读

本文详细介绍了如何使用R语言实现多组倾向评分逆概率加权(IPTW)建模,包括数据预处理、倾向评分估计、权重计算及结果解读。通过实战案例演示,帮助研究者掌握这一统计方法,有效平衡多组混杂因素,模拟随机对照试验效果,适用于医学、社会科学等领域的数据分析。

weixin_42528534的博客 399

通信原理公式总结

通信原理公式总结 第一章通信与通信系统的基本概念 通信系统的模型 各部分的作用如下: 信源:把消息转换成原始的电信号,完成非电/电的转换。 信宿:把复原的电信号转换成相应的消息。 信源编码:进行模/数转换。信源解码:信源编码的逆过程 信道编码:将数字信号变成合适于信道传输的码型。 信道解码:信道编码的反变换。 调制:把各种数字基带信号转换成适应于信道传输的数字 频带信号。 解调:调制的逆变换。 信道:信号传输的通道(媒质)。 信息量度 H=−∑i=1MP(xi)lbP(xi) H=-\sum\limi

free的博客 2万+

JasperReport制作行内容合并的表格

效果图: 实现思路一: 交叉表 另一个思路: 普通表格 缺点:无法实现内容 垂直居中显示 准备工作 一、数据准备 DROP TABLE IF EXISTS `address_item_sex_value`; CREATE TABLE `address_item_sex_value` ( `id` int(11) NOT NULL AUTO_INCREM...

weixin_34148456的博客 2468

POJ 2349 Arctic Network

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 ...

旺崽的博客 3093

PHP证书图片生成

$realname = "姓名"; $schoolname = "学校"; $idcard = "身份证号"; $image = imagecreatefrompng('certification.png'); // 证书模版图片文件的路径 $red = imagecolorallocate($image,00,00,00); // 字体颜色

4036

Conformal LEC逻辑等价性检查介绍和参考脚本

分为三个产品:Conformal L、Conformal XL、Conformal GXL。L是功能性检查,XL支持复杂数据通路的综合和APR优化,GXL支持定制的stdcell和定制memory的检查。Cadence Conformal Equivalence Checker,就是常说的LEC,可以用来验证RTL、门级网表、甚至spice网表的逻辑等价性。do文件是conformal的脚本文件,可以由综合工具(RTL Compiler/Genus)自己产生(write_do_lec),也可以手写。

NanDigits的博客 7257

[POJ 2349] Arctic Network

[题目链接] http://poj.org/problem?id=2349 [算法] 首先,我们发现答案是具有单调性的,所以我们可以二分答案 检验时,我们将所有距离小于二分值的点连边,然后判断联通块数量是否小于等于S即可 [代码] #include <algorithm> #inc...

182

【CQUT】从零开始龙芯杯-开始前的准备

不同级别的Cpu对于vivado综合的时间有较大影响,其中Cpu的单核、多核性能以及cache性能影响权重较高。因此,为了保证学习进度和效率,我们建议在Cpu不低于I5 12400的环境下进行学习。Vivado2023.2安装包约100GB,为了保证成功安装建议留出300GB硬盘空间。龙芯杯的许多资料被托管在gitee,你需要git指令将资料克隆到本地。指定用书:CPU设计实战 Loongarch版 作者:汪文祥、邢金璋。Cpu性能对比网站:https://www.cpu114.com/

weixin_73689971的博客 911

POJ-2349题解

POJ-2349 题目描述The Department of National Defence (DND) wishes to connect several northern outposts by a wireless network. Two different communication technologies ar...

cpongo11的博客 518

CVE-2021-3156本地提权漏洞复现

受影响版本 sudo: 1.8.2 - 1.8.31p2 sudo: 1.9.0 - 1.9.5p1 测试 我这里是在本地centos7上进行测试。 需要目标机器上存在python编译器、目标主机出网或者能上传文件到目标主机。 以非root用户登录系统,并运行如下命令: sudoedit -s / 通常响应一个以 sudoedit: / 开头的报错,多半存在漏洞。 利用 提权脚本: https://www.o2oxy.cn/wp-content/uploa

The current road is different, love needs to distinguish between right and wrong 3782

RK3568 Android14 调试 RTL8211F 千兆以太网 (RGMII)

调试 RTL8211F 的核心在于:确认地址(看电阻贴片情况)和 搞定延时(配置 rgmii-id 或微调 delay 值)。一旦这两点对上了,RK3568 的千兆网络就能稳定运行。希望这篇结合原理图的实战记录能帮到你!

qq_33427070的博客 1651

【POJ 2349 最小生成树】

http://poj.org/problem?id=2349

lavendermaple的专栏 705

计算机应用数学--第一次作业

中科大 计算机应用数学 第一次作业

一杯水果茶!足矣~ 1329

POJ_2349_建图+kruskal

POJ 2349 题意:一个卫星频道等同于2个点之间可以任意通信, 处理点之后,建图,跑kruskal,然后将最短路的最大边都用卫星频道替代, 所以最大的D是最小生成树里面除掉卫星通信边之后的最大边 #include <iostream> #include <string.h> #include <math.h> #include <algorithm...

_llc的博客 203

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

poj 2349 Arctic Network 并查集 连通分支数,二分答案

题目地址:poj2349 题目思路:s

Jingqi@Mr.B的ACM博客 717

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

POJ 2349 Arctic Network (最小生成树)

POJ 2349 Arctic Network (最小生成树)

一枚空指针的博客 383

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

POJ 2349 (Prim算法模板)

1.模板代码 #include #include using namespace std; const int SIZE=101; const int INF=0x7fffffff; int a[SIZE][SIZE]; int n, m; void init() { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++)

记录走过的风风雨雨 749

poj2349 Arctic Network 最小生成树

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

竹丙丙丙丙 404

(最小生成树)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

【POJ】[2349]Arctic Network

理解题意之后也并不算太难 大意是给了一些坐标来求最小生成树 然而让输出的是最大边的值,而因为还有卫星可供通讯 所以只需要当有P个点S个卫星时 共P-1条边里舍去S-1条大的边所以这里我感觉用Kruskal更好一些 而且当取了 P-1-(S-1)==P-S条边时,这一条边便是所要求边 不需要进行后续操作了

BoilTask Talk Show 532

【POJ 2349 --- Arctic Network】prim || kruskal

【POJ 2349 --- Arctic Network】prim || kruskal 题目来源:点击进入【POJ 2349 — Arctic Network】 Description The Department of National Defence (DND) wishes to connect several northern outposts by a wireless network...

来日浅谈的博客 544

最小生成树 poj2349

题目来源http://poj.org/problem?id=2349 我不得不说我要凌乱啦! 我从一开始都是对大致题意明白但是对一些小细节很不明白,包括现在!那个P给的是卫星频道数,但是为什么要求的是第p个长的边而不是第P+1个边,能过完全是靠给的测试实例然后猜的,真是越来越乱啦! 看题就知道这道题可以用的是最小生成数,因为点比较密集,所以采用的是Prime算法! AC的算法: #inc

生活总是要微笑着面对~ 2107

POJ2349 Arctic Network

题目:http://poj.org/problem?id=2349 分析:二分+并查集 代码:#include <cstdio> #include <algorithm> #include <cmath> #include <cstring> using namespace std; const int Tmax=505; const double Q=0.0001; struct edge{

OI -> ACM -> AI 344

poj 2349 Arctic Network MST/二分答案

poj 2349 Arctic Network 题目传送 Sol: 方法一: 贪心的想,发现n个点只需要n-1条边即可,求MST即可,再把MST中最大的m-1条边去掉,第m大就是答案。 code: #include<string> #include<cmath> #include<cstdio> #include<cstring> #inc...

weixin_30448685的博客 153
上一篇: Kruskal 最小生成树(输出最小生成树的路径,权值的和) 参考poj 1258
下一篇: 真正的Kruskal poj 1258(应用了并查集)
三易的博客
博客等级 码龄15年 42粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值