如題,給定 \(n\) 個字串(第 \(i\) 個字串長度為 \(m_i\),字串內包含數字、大小寫字母,大小寫敏感),請求出 \(n\) 個字串中共有多少個不同的字串。
第一行包含乙個整數 \(n\),為字串的個數。
接下來 \(n\) 行每行包含乙個字串,為所提供的字串。
輸出包含一行,包含乙個整數,為不同的字串個數。
輸入 #1
5
abcaaaa
abcabcc
12345
輸出 #14
對於 \(30\%\) 的資料:\(n\leq 10\),\(m_i≈6\),\(mmax\leq 15\)。
對於 \(70\%\) 的資料:\(n\leq 1000\),\(m_i≈100\),\(mmax\leq 150\)。
對於 \(100\%\) 的資料:\(n\leq 10000\),\(m_i≈1000\),\(mmax\leq 1500\)。
樣例說明:
樣例中第乙個字串(abc)和第三個字串(abc)是一樣的,所以所提供字串的集合為,故共計4個不同的字串。
tip: 感興趣的話,你們可以先看一看以下三題:
bzoj3097:
bzoj3098:
bzoj3099:
如果你仔細研究過了(或者至少仔細看過ac人數的話),我想你一定會明白字串雜湊的正確姿勢的_
#include #include #include using namespace std;
typedef unsigned long long ull;
ull base=131, mod=212370440130137957ll, prime=233317;
ull hashe(string s)
洛谷P3370 模板 字串雜湊
rt.雜湊,用於處理一些大值統計方面問題,它的下位是堆排?c,不存在下位的 當數值特別大的時候,堆的陣列就會炸掉。於是雜湊將這些特別大的數除上乙個質數,得到乙個位置存這個特別大的數。然後就正常用,每次就找到這個得出的位置 由於除的是質數,所以一般情況,不同的數得到的位置是不會衝突的。如果衝突了,那麼...
洛谷P3370 模板 字串雜湊
傳送門 如題,給定 n nn 個字串 第 i ii 個字串長度為 m im i mi 字串內包含數字 大小寫字母,大小寫敏感 請求出 nn 個字串中共有多少個不同的字串。輸入格式 第一行包含乙個整數 n nn,為字串的個數。接下來 n nn 行每行包含乙個字串,為所提供的字串。輸出格式 輸出包含一行...
洛谷 P3370 模板 字串雜湊 如題
如題,給定n個字串 第i個字串長度為mi,字串內包含數字 大小寫字母,大小寫敏感 請求出n個字串中共有多少個不同的字串。輸入格式 第一行包含乙個整數n,為字串的個數。接下來n行每行包含乙個字串,為所提供的字串。輸出格式 輸出包含一行,包含乙個整數,為不同的字串個數。輸入樣例 1 5 abcaaaa ...