题目链接:https://ac.nowcoder.com/acm/contest/109904/C

题意:

给定2xn的矩阵,以及两个坐标,求是否能通过放置障碍物使得两个坐标到达(2,n)的最短路径长度相同

思路:

分类讨论

需要注意当一个在上,一个在下的情况,显然纵坐标差一才有可能成立

然而这也有两种不同情况

//01#00
//10000

//00001
//0001.

//0001#
//001x.

//01x00
//001#.

//00100
//0001.

//00010
//00001
void solve(){
    int n;cin>>n;
    pii a,b;cin>>a.fi>>a.se;
    cin>>b.fi>>b.se;
    int ok=0;
    if(a.fi==2){
        swap(a,b);
    }
    if(a.fi==b.fi){
        if(a.se==b.se){
            ok=1;
        }else ok=0;
    }else{
        if(a.se==b.se)ok=0;
        else if(a.se-b.se==1){
            ok=1;
        }else if(b.se-a.se==1){
            if(b.se+1>=n){
                ok=0;
            }else ok=1;
        }else{
            ok=0;
        }
    }
    if(ok){
        cout<<"YES"<<endl;
    }else cout<<"NO"<<endl;
}
posted @ 2025-05-19 21:55  Marinaco  阅读(18)  评论(0)    收藏  举报
//雪花飘落效果