洛谷P3370 模板 字串雜湊

2021-09-26 02:27:36 字數 663 閱讀 7508

rt.

雜湊,用於處理一些大值統計方面問題,它的下位是堆排?(c,不存在下位的),當數值特別大的時候,堆的陣列就會炸掉。於是雜湊將這些特別大的數除上乙個質數,得到乙個位置存這個特別大的數。(然後就正常用,每次就找到這個得出的位置)由於除的是質數,所以一般情況,不同的數得到的位置是不會衝突的。如果衝突了,那麼就存的這個位置的後面,或者往後找乙個新的位置存下來。

這題要我們求n個字串中不重複的有多少,那麼我們就每讀入乙個字串,就將它用乙個規則轉換成數碼,然後%p,得到位置存下來。不同位置存的字串都是不一樣噠,如果位置一樣而不同的話,如上處理。這樣我們就可以較少次數地找到相同的字串,得到答案。

**如下。

#include

#include

#include

using

namespace std;

intconst p=

49999

;//這是乙個質數。

string s[

50001][

5],s;int t[

50001

],n,l,pd,ans;

intmain()

if(pd ==0)

}printf

("%d"

,ans)

;}

洛谷P3370 模板 字串雜湊

傳送門 如題,給定 n nn 個字串 第 i ii 個字串長度為 m im i mi 字串內包含數字 大小寫字母,大小寫敏感 請求出 nn 個字串中共有多少個不同的字串。輸入格式 第一行包含乙個整數 n nn,為字串的個數。接下來 n nn 行每行包含乙個字串,為所提供的字串。輸出格式 輸出包含一行...

洛谷 P3370 模板 字串雜湊

如題,給定 n 個字串 第 i 個字串長度為 m i 字串內包含數字 大小寫字母,大小寫敏感 請求出 n 個字串中共有多少個不同的字串。第一行包含乙個整數 n 為字串的個數。接下來 n 行每行包含乙個字串,為所提供的字串。輸出包含一行,包含乙個整數,為不同的字串個數。輸入 15 abcaaaa ab...

洛谷 P3370 模板 字串雜湊 如題

如題,給定n個字串 第i個字串長度為mi,字串內包含數字 大小寫字母,大小寫敏感 請求出n個字串中共有多少個不同的字串。輸入格式 第一行包含乙個整數n,為字串的個數。接下來n行每行包含乙個字串,為所提供的字串。輸出格式 輸出包含一行,包含乙個整數,為不同的字串個數。輸入樣例 1 5 abcaaaa ...