思路:
起点(x1, y1),终点(x2, y2),步长(dx, -dy),(dx, dy),(-dx, -dy),(-dx, dy)。只要满足abs(x1 - x2) % dx == 0 并且 abs(y1 - y2) % dy == 0 并且 abs(x1 - x2) / dx 和abs(y1 - y2) / dy奇偶性相同即可。
实现:
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 5 int main() 6 { 7 int x1, y1, x2, y2, dx, dy; 8 cin >> x1 >> y1 >> x2 >> y2 >> dx >> dy; 9 int m = abs(x1 - x2), n = abs(y1 - y2); 10 if (m % dx || n % dy) puts("NO"); 11 else if ((m / dx & 1) != (n / dy & 1)) puts("NO"); 12 else puts("YES"); 13 return 0; 14 }