CodeForces - 1292B. 아로마의 검색 (+ 생각 폭력)

질문의 의미 :

그는 점의 위치에 따라의 후 시점 말했다 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 ;
 }

 

추천

출처www.cnblogs.com/overrate-wsj/p/12293603.html