文字列ターンハッシュプレミアム

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
const  int型の P = 十億七、MOD = 65535 ; 
ベクター <符号なし> H [MOD]。
の追加(符号なしのキーは)
{ 
    int型 I =キー%のMODを、
    H [i]は.push_back(キー)。
} 
BOOL (未署名鍵)を取得
{ 
    int型 I =キー%のMODと、
    int型のk = 0 ; K <H [I] .size(); ++ kは場合(H [i]が[K] == キー) 
             を返す リターン ; 
} 
int型のmain()
{ 
    int型 ANS = 0 int型のk = 1 ; K <= 7 ; kは++ 
    { 
        チャー S [ 105 ]。
        scanf関数(" %sの" 、S);
        INT LEN = STRLEN(S)。
        未署名のハッシュ = 0 以下のためにint型 i = 0 ; iがLEN <I ++の
            ハッシュ =ハッシュを* P + S [i]は、
        もし(!(ハッシュ))を取得
        { 
            ANS ++ ; 
            (ハッシュ)を追加します。
        } 
    } 
    のprintf(" %d個の\ n " 、ANS)。
    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/Tidoblogs/p/11346079.html