(模拟)(矩阵坐标表示)1219. 移动距离

简介: (模拟)(矩阵坐标表示)1219. 移动距离

题目链接

AcWing 1219. 移动距离 - AcWing


一些话


切入点

X星球居民小区的楼房全是一样的,并且按矩阵样式排列。


其楼房的编号为 1,2,3…1,2,3…


当排满一行时,从下一行相邻的楼往反方向排号。


我们的问题是:已知了两个楼号 m 和 n,需要求出它们之间的最短移动距离(不能斜线方向移动)


读题得知一个矩阵及其性质,知道元素编号,就坐标距离

流程

用编号表示出行号,根据行号写出列号


套路

根据元素编号进行矩阵元素的坐标表示:

       效仿二维数组的表示,下标从0开始,便于获取坐标

       n * n 矩阵, 编号t,t--,xt = t / n,yt = t % n;

ac代码

// 6:53~19贪快没读好题,debuhg废了很多时间
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int w, m, n;
    cin >> w >> m >> n;
    m --, n -- ;
    int x1 = m / w, x2 = n / w;
    int y1 = m % w, y2 = n % w;
    if (x1 % 2) y1 = w - 1 - y1;
    if (x2 % 2) y2 = w - 1 - y2;
    cout << y1 << " " << y2 << endl;
    cout << abs(x1 - x2) + abs(y1 - y2) << endl;
    return 0;
}
目录
相关文章
|
4月前
|
算法框架/工具 C++ Python
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
333 0
|
4月前
|
C++
C++代码来计算一个点围绕另一个点旋转45度后的坐标
C++代码来计算一个点围绕另一个点旋转45度后的坐标
102 0
|
7月前
|
JavaScript 前端开发 Java
根据地球上任意两点的经纬度计算两点间的距离
根据地球上任意两点的经纬度计算两点间的距离
357 2
|
7月前
|
算法
算法题—顺时针打印矩阵
算法题—顺时针打印矩阵
50 0
|
7月前
根据经纬度计算两点距离的方法
根据经纬度计算两点距离的方法
|
7月前
[Halcon&几何] 线段中点、端点和角度的计算
[Halcon&几何] 线段中点、端点和角度的计算
286 0
|
7月前
|
算法
[Halcon&几何] 矩形顶点和对角连线角度计算
[Halcon&几何] 矩形顶点和对角连线角度计算
145 0
|
定位技术 API 容器
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
955 0
给定三个顶点的坐标使用程序计算三角形
给定三个顶点的坐标使用程序计算三角形
76 0