题解 | #无人驾驶#
题目考点:曼哈顿距离(搜索算法里面会用到) 题目内容:判断能否恰好使用 m 步从( a, b ) 走到 ( 0 , 0 ); 题目分析:在坐标轴上从一个点走到另一个点需要的最短距离叫做曼哈顿距离,即 ; 而判断从A点恰好用m步走到B点时,有两种情况: 第一种:m = distance,即走了曼哈顿距离恰好到达B点,对应上图绿色路线,需要3步; 第二种:m > distance 时,需要判断能否走到,观察上图黄色(7步)和蓝色(11步)路线,即可发现若走到B上下左右四个格子时,若剩余奇数步(比如蓝色走到8的时候离11步用完还剩下3步),则可以“绕路”,花完剩下的步数;相反若m 为 10, 走到蓝色路线8步的时候还剩下两步,则不论怎么绕都走不到B点 因此有以下解法:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a, b, m;
scanf("%d%d%d", &a, &b, &m);
if((m - (a + b)) % 2 == 0 && m >= abs(a) + abs(b))
puts("Yes");
else puts("No"); //若走完曼哈顿距离后还剩下奇数数步则可以到达
//相当于走到B之后又绕了一圈再回来
return 0;
}
```</algorithm></iostream>
题解专栏 文章被收录于专栏
希望不断进步