주제 링크 : 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 ; }