第三次周测之C

在这里插入图片描述
首先,算出两点的曼哈顿距离,mod步长不为0的一定到不了(将最短路展开为x,y方向直线,步长不符合整除的无法到达)

这还没完,符合整除条件的还要继续分情况,因为每走一次,x和y的变化量是一一照应的,因此当x、y操作数之差为奇数(无法通过偶数次拐弯逆转)时,也是无法到达的。
设起点和终点的 坐标差绝对值 分别为 dx和dy,
如果要满足条件,那么dx%x=0,dy%x=0显然要成立,
同时dx/x%2=dy/y%2也要成立

#include<bits/stdc++.h>
using namespace std;
int n;
void solve(){
    
    
int a,b,c,d;cin>>a>>b>>c>>d;
int dx=abs(a-c);
int dy=abs(b-d);
int x,y;cin>>x>>y;
if(dx%x==0&&dy%y==0&&dx/x%2==dy/y%2){
    
    
cout<<"YES"<<endl;
}else{
    
    
cout<<"NO"<<endl;
}
}
signed main(){
    
    
ios::sync_with_stdio(0);
solve();
return 0;
}

猜你喜欢

转载自blog.csdn.net/wuyvle/article/details/113759759
今日推荐