题解 | #无人驾驶#

题目考点:曼哈顿距离(搜索算法里面会用到) 题目内容:判断能否恰好使用 m 步从( a, b ) 走到 ( 0 , 0 ); 题目分析:在坐标轴上从一个点走到另一个点需要的最短距离叫做曼哈顿距离,即distance = |x1 - x2| + |y1 - y2|; ; 而判断从A点恰好用m步走到B点时,有两种情况: @Zzz、 第一种: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", &amp;a, &amp;b, &amp;m);
    
    if((m - (a + b)) % 2 == 0 &amp;&amp; m &gt;= abs(a) + abs(b))
        puts("Yes");
    else puts("No"); //若走完曼哈顿距离后还剩下奇数数步则可以到达
                     //相当于走到B之后又绕了一圈再回来
    return 0;
}
```</algorithm></iostream>
题解专栏 文章被收录于专栏

希望不断进步

全部评论
你上面说有偶数步不能到达下面又说偶数步可以是啥意思
点赞 回复 分享
发布于 2023-05-11 21:02 江苏

相关推荐

评论
7
收藏
分享
牛客网
牛客企业服务