[CodeForces - 124D] Squares(회전 좌표계, 계산 기하학, 사유)
2458 단어 계산 기하학Codeforce~사유
You are given an infinite checkered field. You should get from a square (x1; y1) to a square (x2; y2). Using the shortest path is not necessary. You can move on the field squares in four directions. That is, when you are positioned in any square, you can move to any other side-neighboring one.
A square (x; y) is considered bad, if at least one of the two conditions is fulfilled:
Your task is to find the minimum number of bad cells one will have to visit on the way from (x1; y1) to (x2; y2).
Input
The only line contains integers a, b, x1, y1, x2 and y2 — the parameters of the bad squares, the coordinates of the initial and the final squares correspondingly (2 ≤ a, b ≤ 109 and |x1|,|y1|,|x2|,|y2| ≤ 109). It is guaranteed that the initial and the final square aren't bad.
Output
Print a single number — the minimum number of bad cells that one will have to visit in order to travel from square (x1; y1) to square (x2; y2).
Examples
Input
2 2 1 0 0 1
Output
1
Input
2 2 10 11 0 1
Output
5
Input
2 4 3 -1 3 7
Output
2
Note
In the third sample one of the possible paths in (3;-1)->(3;0)->(3;1)->(3;2)->(4;2)->(4;3)->(4;4)->(4;5)->(4;6)->(4;7)->(3;7). Squares (3;1) and (4;4) are bad.
제목 대의:
두 개의 평면 안의 점을 드리겠습니다. 좌표는 크지만 int를 넘지 않습니다. 평면 안에서 위아래로 좌우로 갈 수 있습니다. (x1, y1)에서 (x2, y2)까지 가면 최소한 나쁜 점을 통과할 수 있는 수량(나쁜 점은 만족 | x + y |% 2a = = = 0 또는 | x - y |% 2b = 0)을 물어보세요.
문제 해결 보고서:
이 문제는 나쁜 점이 가장 적고 나쁜 점이 있는 직선은 사실 일정한 규칙을 만족시키는 것이 바로 등간격 분포이다.여기까지 그린 것은 사실 이미 뚜렷하다. 두 점 사이의 노선의 나쁜 점을 최소화하려면 반드시 이 직선들 사이에서 가능한 한 많은 교차점을 걸어야 한다. 여기서 주의해야 할 문제는 바로 상한선을 뛰어넘는 문제(x+y=0과 x-y=0)이다.
문제풀이
AC 코드:
#include
using namespace std;
int a,b,x1,y1,x2,y2;
int x,y;
int main()
{
// cout << (5/-2)<>a>>b>>x1>>y1>>x2>>y2;
// 45° ,
x=x1;
y=y1;
x1=x+y;
y1=y-x;
x=x2;
y=y2;
x2=x+y;
y2=y-x;
a*=2;
b*=2;
// 0,
x1=x1/a+(x1>0);
x2=x2/a+(x2>0);
y1=y1/b+(y1>0);
y2=y2/b+(y2>0);
// , , , , ,
cout<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
bzoj 2338: [HNOI2011] 직사각형(형상 계산)전송문 제목 대의: n개의 점을 제시하고 정점이 모두 n개의 점 중의 최대 직사각형을 구한다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.