2019 가축 오프 더 학교 열 번째 필드 B.Coffee 치킨 (재귀)

주제 포털

문제의 의미

"COFFEE"의 첫번째 스트링은 상기 제 2 캐릭터가 "CHICKEN"전면 (2)로부터 n 번째 문자열 (즉, S [N] =에서 S [N 서로 연결된 전방이다 -2] + S [N-1]이 s에 참고 [N-2]의 [N-1]), 쿼리의 앞에 어떤 (그렇지 않으면 연속 된 10 개 문자의 n의 k 번째 문자열에서 Q는 처음 )가 10 개 문자가 있지만 중지 문자열의 끝에 도달

1 N 5 0 0
1 K { | S ( N ) | , (1) 0 1 } . (| | S ) 문자열의 길이를 나타낸다

 문제 해결

암호

#INCLUDE <비트 / STDC ++ H.>
 은 USING  공간 STD, 
타입 정의  ; LL
 CONST LL + 1E12 INF = 10 ; // K 최대 1E12는 출력 (10)에 결합 된 값은 INF 수 + 10 1E12 
CONST의  INT의 MAXN 5e2 + = 10 ; 
LL S [MAXN] 
문자열 ANS1 = " COFFEE " , ANS2가 = " CHICKEN " ;
 숯불 (N-LL, LL K) 해결 
{ 
    IF (N - == 1. ) 복귀 ANS1의 [- K- 1이다. ]; // 어레이는 처음부터 0, 1, K에서 시작하므로 필요 -1 
    다른  IF(N - == 2 ) 복귀 ANS2의 [- K- 1이다. ];
     IF (K> S [N- 2 ])
         복귀 해결 (N- . 1 , KS [N- 2 ]);
     사람의 
        복귀 (N- 해결 2 , K) ; 
} 
INT 의 main () 
{ 
    / * 전처리 문자열 길이 * / 
    S의 [ . 1 ] = 6. , S [ 2 ] = 7. ]
      ( INT I = 3. , I는 <= 500 ; I는 ++ ) 
        S [I] = S [I- 2] + S [I- 1이다. ] <S INF = I-? 2 ] + S [I- 1. ] INF; // 만약 S [I]가> + 10 1E12는 후면이 1E12 + 10 같게거나 오버플 
        
    INT의 T; 
    CIN >> T; 
    N- LL, K, 
    그동안 (T-- ) 
    { 
        CIN >> N- K]
         에 대한 I는 K + <(I = K LL 10 && I <= S [N-] I을 ++ )는 // 문자열의 전체 길이 longlongs I)에 대한 그 주 (정지보다 10 이상으로하는 출력 
            COUT << (해결 N-, I); 
        COUT << ENDL; 
    } 
    리턴  0 ; 
}

 

추천

출처www.cnblogs.com/HOLLAY/p/11413979.html