CODEVS 4189(接頭辞が表示されます)

トピックへのリンク:http://codevs.cn/problem/4189/

#include <iostreamの> 
する#include <CStringの> 
する#include <cstdioを>
 の#define MEM(A、B)のmemset(A、B、はsizeof(a)参照)。
使用して 名前空間はstdを、
typedefの長い 長いLL。
const  int型 MAXN = 500005 ;
constの LL INF = 0x3f3f3f3f INTの TOT、N、トライ[MAXN] [ 26 ]、和[MAXN]。
BOOL VIS [MAXN]、フラグ。
ボイド挿入(CHAR * sで、INT RT)
{ 
    int型 LEN = STRLEN(S)。
    以下のためのint型I = 0 ; 私はLEN <; I ++ 
    { 
        int型のk = sの[I] - [ A ' もし(トライ[RT] [K] == 0)トライ[RT] [K] = ++ TOT。
        和[トライ[RT] [K] ++ ; 
        RT = トライ[RT] [K]。
    } 
} 
int型(検索文字 * sで、INT RT)
{ 
    int型 LEN = STRLEN(S)。
    以下のためにint型 i = 0 ; iがLEN <; iは++ 
    { 
        int型のk = S [I] - [" ; 
        RT = トライ[RT] [K]。
        もし(室温== 0を返す 
    } 
    を返す 
} 
int型のmain()
{ 
    TOT = 0 int型 RT = 0 ;
    チャー S [ 105 ]。
    int型のn; 
    cinを >> N;
    以下のためにint型 i = 1 ; iが++; iが<= N ){ 
        CIN >> S。
        挿入(S、RT)。
    } 
    CIN >> N。
    以下のためにint型 i = 1 ; iが++; iが<= N ){ 
        CIN >> S。
        もし(検索(S、RT))はcout << " YES " << てendl;
        他の裁判所未満<< " NO " << てendl; 
    } 
    戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/LLLAIH/p/11330442.html