题解 | 至

https://www.nowcoder.com/practice/36892cfda60144bb9eb8b20f2f61e0b6

直接分类讨论:题目不难哈,就只有数组两行,那么放障碍物也十分清晰。

三种情况:

第一种:坐标重合一定满足(无需障碍物)

第二种:两个坐标呈现左下右上45度(无需障碍物)

第三种:两个坐标呈现左上右下45度,这时需要障碍物将右边的第一个位置堵上,那右下位置只能走左上的路径了。

注意第三种情况要处理特殊情况,注意到题目坐标的范围可以到n,且障碍物不能放到终点。则特殊情况为右下已经在终点和离终点差向右一个位置,也就是和终点紧挨着。这两种不能满足题设。

最后附上代码

#include<bits/stdc++.h>
using namespace std;
#define int long long

void solve() {
    int n;
    cin>>n;
    int x1,y1,x2,y2;
    cin>>x1>>y1;
    cin>>x2>>y2;
    bool isTrue=false;
    if(x1==x2&&y1==y2){
        isTrue=true;
    }
    if(x1-x2==y2-y1){
        isTrue=true;
    }
    if((x1-x2==y1-y2)&&(y1<n-1&&y2<n-1)){
        isTrue=true;
    }
    if(isTrue){
        cout<<"YES"<<endl;
    }else{
        cout<<"NO"<<endl;
    }
}

signed main() {
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    solve();
    return 0;
}

全部评论
豁然开朗
1 回复 分享
发布于 2025-12-21 16:18 江西

相关推荐

2025-12-18 11:24
山西大学 测试工程师
A_SOUL_Off...:疑似加班加出幻觉了
点赞 评论 收藏
分享
喵_coding:年底缺人是短视频营造出来的 而且一般说的也很宽泛 不是特指后端
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务