官方题解
2025-06-09 17:49:31
发布于:浙江
3阅读
0回复
0点赞
CityWalk
题目大意
给予一个的二维矩阵,给予两个顶点与,要求求出两个顶点的曼哈顿距离。
题解思路
本题本质为求曼哈顿距离的问题,在输入矩阵的时候记录两个顶点的坐标,然后计算两个坐标的曼哈顿距离即可。
曼哈顿距离计算公式 =
参考代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int h, w;
cin >> h >> w; // 输入矩阵的行数和列数
char grid[h][w]; // 定义二维数组存储矩阵
int x1 = -1, y1 = -1, x2 = -1, y2 = -1; // 初始化两位旅行家的位置
// 输入矩阵并找到两位旅行家的位置
for (int i = 0; i < h; ++i) {
for (int j = 0; j < w; ++j) {
cin >> grid[i][j];
if (grid[i][j] == 'o') {
if (x1 == -1) { // 找到第一位旅行家
x1 = i;
y1 = j;
} else { // 找到第二位旅行家
x2 = i;
y2 = j;
}
}
}
}
// 计算曼哈顿距离
int distance = abs(x1 - x2) + abs(y1 - y2);
cout << distance << endl;
return 0;
}
这里空空如也
有帮助,赞一个