C++解决n点最小曼哈顿距离

news/2024/9/20 20:40:36 标签: c++, 开发语言, 学习

作者制作不易,关注、点赞、收藏一下吧!

1.曼巴顿距离

‌曼哈顿距离是由十九世纪的‌赫尔曼·闵可夫斯基所创词汇‌,用于标明两个点在标准坐标系上的绝对轴距总和。

2.代码实现

2.1.导入头文件、命名空间

这个没有什么好说的,不过绝对值需要用cmath头文件。

#include <iostream> // 导入头文件、命名空间
#include <cmath>
using namespace std;

2.2.创建结构体和输入

struct point // 定义结构体point
{
	int x;
	int y;
}point_list[1001]; // 创建结构体列表point_list

int point_number; // 输入点的个数
cin >> point_number;
for(int i = 0; i <= point_number - 1; i++) // 输入每个点的x、y轴
{
	cin >> point_list[i].x >> point_list[i].y;
}

有关结构体的内容可以看结构体这篇文章。

2.3.枚举

// 开始枚举
for(int i = 0; i <= point_number - 1; i++)
{
	for(int j = i + 1; j <= point_number - 1; j++)
	{
		int point_distance = abs(point_list[i].x -  point_list[j].x) + abs(point_list[i].y - point_list[j].y);			
        if (point_distance < min_distance)			
        {
			min_distance = point_distance;
		}
	}
}

2.4.输出结果

cout << min_distance;

2.5.完整代码

#include <iostream> // 导入头文件、命名空间
#include <cmath>
using namespace std;

struct point // 定义结构体point
{
	int x;
	int y;
}point_list[1001]; // 创建结构体列表point_list

int main() // 主函数
{
	int point_number; // 输入点的个数
	cin >> point_number;
	for(int i = 0; i <= point_number - 1; i++) // 输入每个点的x、y轴
	{
		cin >> point_list[i].x >> point_list[i].y;
	}
	int min_distance = 1e9; // 初始化最小值
	// 开始枚举
	for(int i = 0; i <= point_number - 1; i++)
	{
		for(int j = i + 1; j <= point_number - 1; j++)
		{
			int point_distance = abs(point_list[i].x -  point_list[j].x) + abs(point_list[i].y - point_list[j].y);
			if (point_distance < min_distance)
			{
				min_distance = point_distance;
			}
		}
	}
	cout << min_distance;
	
	return 0; // 结束程序
}


http://www.niftyadmin.cn/n/5667616.html

相关文章

通信工程学习:什么是ODN光分配网络

ODN&#xff1a;光分配网络 ODN&#xff08;Optical Distribution Network&#xff0c;光分配网络&#xff09;是光接入网中的重要组成部分&#xff0c;它位于光线路终端&#xff08;OLT&#xff09;和光网络单元&#xff08;ONU&#xff09;/光网络终端&#xff08;ONT&#x…

【Python】耗时任务的超时管理

一、背景介绍 在日常编程中&#xff0c;我们经常会遇到一些耗时的任务&#xff0c;如文件处理、网络请求等。为了提高程序的执行效率&#xff0c;我们可以采用多进程的方式来实现任务的并行处理。然而&#xff0c;在某些情况下&#xff0c;任务执行时间过长可能会导致程序卡顿&…

ARM中要使用的汇编基础

汇编代码&#xff1a; preserve8 area reset, code, readonly code32 entry ; 异常向量表 b start ; 重置异常&#xff0c;跳转到 start 标签 ldr pc, do_undifined ; 未定义指令异常处理函数地址 ldr pc, do_swi ; 软件中断异常处理函数地…

初体验《SpringCloud 核心组件Eureka》

文章目录 1.案例准备1.1 案例说明1.2 案例数据库准备1.3 环境搭建1.3.1. 创建一个空的项目1.3.2. 创建Maven工程1.3.3. 配置父工程依赖&#xff0c;SpringCloud版本以及对应的SpringBoot版本1.3.4. 创建公共模块1.3.5. 创建用户模块工程1.3.5.1 引入依赖以及配置文件1.3.5.2 在…

Apollo(阿波罗)架构由浅入深剖析

1.最简架构 如果不考虑分布式微服务架构中的服务发现问题,Apollo 的最简架构如下图所示: 注意事项: ConfigService 是一个独立的微服务,服务于 Client 进行配置获取。 Client 和 ConfigService 保持长连接,通过一种拖拉结合 (push & pull) 的模式,实现配置实时更新…

Node-RED和物联网分析:实时数据处理和可视化平台

这篇论文的标题是《Node-RED and IoT Analytics: A Real-Time Data Processing and Visualization Platform》&#xff0c;发表在《Tech-Sphere Journal of Pure and Applied Sciences (TSJPAS)》2024年第一期上。论文主要探讨了Node-RED和物联网分析在物联网(IoT)实时数据处理…

开源 AI 智能名片链动 2+1 模式 S2B2C 商城小程序与社交电商的崛起

摘要&#xff1a;本文深入探讨了社交电商迅速发展壮大的原因&#xff0c;并分析了开源 AI 智能名片链动 21 模式 S2B2C 商城小程序在社交电商中的重要作用。通过对传统电商与社交电商的对比&#xff0c;以及对各发展因素的剖析&#xff0c;阐述了该小程序如何为社交电商提供新的…

JAVA SE8

文章目录 一&#xff0c;介绍LambdaLambda 表达式简介Lambda 表达式的应用场景示例代码Lambda表达式作为方法参数Lambda表达式与集合操作方法引用示例 Stream APIStream API 介绍创建 Stream过滤数据映射数据排序数据聚合数据匹配数据其他功能 java.time包新的日期和时间API&am…