(模拟)(矩阵坐标表示)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;
}
目录
相关文章
|
2月前
|
算法
算法题—顺时针打印矩阵
算法题—顺时针打印矩阵
30 0
|
2月前
根据经纬度计算两点距离的方法
根据经纬度计算两点距离的方法
|
12月前
|
定位技术 API 容器
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
790 0
给定三个顶点的坐标使用程序计算三角形
给定三个顶点的坐标使用程序计算三角形
41 0
判断上三角矩阵
判断上三角矩阵 (15 分)
101 0
|
算法
LeetCode 73矩阵置零&74搜素二维矩阵&75颜色分类
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。
108 0
LeetCode 73矩阵置零&74搜素二维矩阵&75颜色分类
|
机器学习/深度学习
平面上有 n n个坐标相异的点,请问当中有多少组非共线的三个点,这三个点的 外心 也在这 nn 个点之中?
有一个正整数 nn 代表平面上的点数。 接下来有 nn 行,当中的第 ii 行包含两个整数 x_i, y_i,xi​,yi​ 代表第 i 个点的坐标是 (x_i, y_i)(xi​,yi​)。
93 0
|
算法 程序员 C语言
|
机器学习/深度学习 C语言 UED
[解题报告]【第34题】给定一个 n X n 的矩阵 和 R,求旋转 90R 度以后的矩阵
[解题报告]【第34题】给定一个 n X n 的矩阵 和 R,求旋转 90R 度以后的矩阵
[解题报告]【第34题】给定一个 n X n 的矩阵 和 R,求旋转 90R 度以后的矩阵