luo
gu
luogu
luogup
3370
p3370
p337
0如題,給定n個字串(第i個字串長度為mi,字串內包含數字、大小寫字母),請求出n個字串中共有多少個不同的字串。
第一行包含乙個整數n,為字串的個數。
接下來n行每行包含乙個字串,為所提供的字串。
輸出包含一行,包含乙個整數,為不同的字串個數。
5
abcaaaa
abcabcc
12345
4
時空限制:1000ms,128m
資料規模:
對於30%的資料:n<=10,mi≈6,mmax<=15;
對於70%的資料:n<=1000,mi≈100,mmax<=150
對於100%的資料:n<=10000,mi≈1000,mmax<=1500
樣例說明:
樣例中第乙個字串(abc)和第三個字串(abc)是一樣的,所以所提供字串的集合為,故共計4個不同的字串。
計算字串的has
hhash
hash
值,判斷在這個has
hhash
hash
值下,有沒有相同的字串,沒有則假如這個值的陣列,並且加一下答案
#
include
#include
using
namespace std;
int h[
50005
],n,ans;
long
long p=
10007
;string s[
50008][
5];string s;
intmain()
if(!b)}
cout << ans;
return0;
}
字串 字串雜湊hash演算法
以洛谷p3370為引子引入吧 雜湊其實是所有字串操作中,筆者認為最簡單的操作了 except輸入輸出qwq 雜湊的過程,其實可以看作對乙個串的單向加密過程,並且需要保證所加的密不能高概率重複 就像不能讓隔壁老王輕易地用它家的鑰匙開啟你家門一樣qwq 通過這種方式來替代一些很費時間的操作。比如,最常見...
字串雜湊 Hash
字串雜湊,用通俗點的說法就是將乙個字串轉換成乙個整數,而且用雜湊轉換出來的整數,不同的字串,不出意外整數也不一樣 存在極少的情況一樣 從而更方便地確定某個字串是否重複出現過或者對字串進行其他的判斷。基本思想 假設乙個字串 abcdabcd 將整個字串看成乙個p p一般取131或者13331比較好,可...
雜湊has雜湊 字串hash
維護乙個集合,支援如下幾種操作 i x 插入乙個數x q x 詢問數x是否在集合 現過 現在要進行n次操作,對於每個詢問操作輸出對應的結果。輸入格式 第一行包含整數n,表示運算元量。接下來n行,每行包含乙個操作指令,操作指令為 i x q x 中的一種。輸出格式 對於每個詢問指令 q x 輸出乙個詢...