질문의 의미 :
그는 점의 위치에 따라의 후 시점 말했다 X [I ] = X [I - . 1 ] * AX + BX , Y, [I ] = Y [I - 1. ] * AY +에 의해 정규 분포, 처음에 당신은 스탠드를 한 위치에서 모든 두 번째는 t에있는 포인트의 최대 수에 걸어 물어, 네 방향으로 이동할 수 있습니다
아이디어 :
데이터함으로써 우리는이 찾을 수있는 64가 , 1e16보다가 t의 범위 있던 맵에서 64 점 너무 만 최대
우리는 단지 시작과 끝 지점을 각 지점의 좌표를 획득하고 열거 할 폭력을 필요 그래서 당신이 복용 (연속 포인트를 이동 한 방향으로 만 확실히 최고입니다)
이하 t는 최대 값을 얻을 수있는 것보다 거리 (원점 시점 플러스 단부로부터의 거리에 대한 초기 위치에서 온) 결정하는 응답 아
사용법 #include <iostream> #INCLUDE <알고리즘> #INCLUDE <cmath> 사용 공간을 성병; 형식 정의를 오래 오래 LL; LL X [ 70 ], Y [ 70 ]; DIS하겠다 (LL의 X1을 LL Y1, LL X2, Y2 LL) { 리턴 ABS (X1-X2) + ABS (Y1- Y2); } int 형 ) (주 { LL 도끼, AY, BX,에 의해, XS, YS, t; INT CNT = 0 ; CIN >> X [ 0 ] >> Y [ 0 ] >> >> AY AX BX >> >> 단계; CIN >> >> XS YS >> t; 반면 (X [CNT] -xs <t && Y [CNT] -ys < t) { CNT ++ ; X [CNT] = X [cnt- 1 ] * AX + BX; Y [CNT] = Y [cnt- 1 ] * (AY) + 단계; } INT ANS = 0 ; 위한 ( INT 난 = 0 ; I <= CNT; I ++ ) { 대 ( INT J = I, J <= CNT; J ++ ) { 경우 (j-i가 + 1 <= ANS) 계속 ; LL 온도 = 분 (DIS (X [I], Y [i]를, XS, YS), DIS (X [J], Y [J], XS, YS)); 온도 + = DIS (X [I], Y [i]를, X [J], Y [J]); 경우 (온도 <= t) ANS-I = J + 1 ; } } COUT << ANS << ENDL; 반환 0 ; }