HDU 1251 통계 문제 (질문 접두사는 여러 번 등장)

주제 링크 : http://acm.hdu.edu.cn/showproblem.php?pid=1251

사용법 #include <iostream> 
#INCLUDE <CString을> 
#INCLUDE <cstdio>
 #DEFINE MEM (a, b)가 memset (A, B를 sizeof (a));
사용하는  네임 스페이스 표준을; 
타입 정의  LL;
CONST의  INT의 maxn = 500,005 ;
CONST LL INF = 0x3f3f3f3f ;
INT의 TOT, N, 트라이 [maxn] [ 26 ], 합계 [maxn];
불리언 힘 [maxn, 플래그;
보이드 삽입 (  * s의 INT의 RT) 
{ 
    INT LEN = strlen 함수 (S);
    대한 ( INT난 = 0 ; <I 렌; I ++ ) 
    { 
        INT의 유전율 =에서 S [I] - ' ' ;
        경우 (트라이 [RT] [K] == 0 ) 트라이 [RT] [K] = ++ TOT; 
        합 [트라이 [RT] [] K] ++ ; 
        RT = 트라이 [RT] [K]; 
    } 
} INT를 찾기 (  * s의 INT의 RT) 
{ INT LEN = strlen 함수 (S);
    위한 ( int로 I = 0 ; I <렌; 내가 ++ ) 
    { INT의 유전율 = S [I] - '

    
        ' ; 
        RT = 트라이 [RT] [K];
        경우 (RT의 == 0 ) 돌려  0 ; 
    } 

    리턴 합 [RT]; 
} 
INT 의 main () 
{ 
    TOT = 0 ;
    INT의 RT = 0 ; 
    플래그 = 거짓 ;
    문자 S [ 105 ];
    동안 ( 1 ) 
    { 
        (들)을 얻는다; 
        경우 (S [ 0 ] == NULL) 
        { 
            체류; 
        } 
            삽입 (S, RT); 
    } 
    동안 (CIN >> S) { 
            COUT << 찾기 (S, RT) << ENDL; 
    } 
    반환  0 ; 
}

 

추천

출처www.cnblogs.com/LLLAIH/p/11330433.html