蜂窝小区最短距离的坐标系解法

这篇博客介绍了一种解决蜂窝小区最短距离问题的坐标系解法。通过定义XYZ坐标,可以计算出任意两个编号的蜂窝小区之间的最短路径。博客详细讲解了如何初始化蜂窝小区信息、计算最短距离以及清空相关信息,并提供了相关接口的实现代码。
摘要由CSDN通过智能技术生成

如下图所示,蜂窝小区,以1为中心,顺时针编号,编号最大限定为100000。


求任意两编号之间的最短距离。

两个相邻小区的距离为1

示例:19到30的最短距离为5

 

实现如下三个接口:

/************************************************************************

Description  : 初始化蜂窝小区信息

Prototype    : void InitCellularDistrict(int iMaxSeqValue)

               Input Param  : iMaxSeqValue 蜂窝小区的最大值编号,注:编号从1开始

               Output Param : 无

               Return Value : 成功返回0,失败返回-1

/************************************************************************/

int InitCellularDistrict(int iMaxSeqValue)

{

    return -1;

}

 

/************************************************************************

Description  : 计算出蜂窝小区指定两点(编号值)之间的最短距离

Prototype    : int GetShortestPathLength(int iFirstValue, int iSecondValue)

               Input Param  : iFirstValue 起点编号值, iSecondValue 终点编号值

               Output Param : 无

               Return Value : 计算成功返回最短距离,失败返回-1

/************************************************************************/

int GetShortestPathLength(int iFirstValue, int iSecondValue)

{

    return -1;

}

 

/************************************************************************

Description  : 清空相关信息

Prototype    : void Clear()

               Input Param  : 无

               Output Param : 无

               Return Value : 无

/************************************************************************/

void Clear()

{

 

}

解题思路:

1、约定:定义XYZ坐标如上图所示,X轴往左平移n个单位定义为x=-n,往右平移n个单位则定义为x=n,同理,Y轴往左上平移n个单位定义为y=n,Y轴往右下平移n个单位定义为y=-n,Z轴往右上平移n个单位定义为z=n,Z轴往左下平移n个单位定义为z=-n。如下图所示:

 

2、定义点坐标:有了前面的约定,整个区域内的任何一个点都可以从序号为1的蜂窝开始沿坐标轴垂直方向多次移动到达。然后我们就可以定义每个点坐标如何表示了,如下图所示:


我们取29这个点来举例说明,它所在X轴左平移2个单位处,因此x=-2,它所在Y轴左上平移3个单位处

  • 2
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值