ybt高效高階2 2 1 字串雜湊

2021-10-16 21:23:42 字數 833 閱讀 3903

給出一堆字串,問你有多少個不同的。

這道題很明顯就是一道 hash。

我們隨便弄乙個值數,然後對於每個字串有乙個 hash 值。

(相同的字串的 hash 值一定相同,不同的字串的 hash 值一般不同,就也可能相同)

那我們就只用跟前面有他的 hash 值的字串看是否相同就可以了。

(至於記錄乙個 hash 值有哪些字串,我用的是鄰接表在存)

#include

#include

#define mo 19491001

#define ll long long

using

namespace std;

struct node e[

10001];

int n, ans, hash[

19491010

], size, kk, sizee;

ll hash_num, times;

char c[

10001][

1501];

bool yes, same;

void

push

(int x,

int y)

; hash[x]

= kk;

}int

main()

if(hash[hash_num])if

(yes)}}

if(!same)

}else

}printf

("%d"

, ans)

;return0;

}

2 21 字串(藍橋杯)

問題描述 給出乙個包含n個整數的數列,問整數a在數列中的第一次出現是第幾個。輸入格式 第一行包含乙個整數n。第二行包含n個非負整數,為給定的數列,數列中的每個數都不大於10000。第三行包含乙個整數a,為待查詢的數。輸出格式 如果a在數列 現了,輸出它第一次出現的位置 位置從1開始編號 否則輸出 1...

字串雜湊 Ybt 單詞背誦

給你一些單詞,再給你一段文章。要你求此文章中包含多少個給出的單詞。再求文章中的一段,使之包含 給出的單詞最多 不計重 輸出其最小的長度。字串雜湊,然後尺取法。尺取法通常是指對陣列儲存一對下標 起點,終點 然後根據實際情況交替推進兩個端點直到得出答案的方法,這種操作很像是尺取蟲爬行的方式故得名。雙重雜...

16 字串雜湊 雜湊表

這個方法叫做字串字首雜湊法 先求出來每個字首的雜湊值 問題1 如何來定義某乙個字首的雜湊值 把這個字串看成是乙個p進製的數 每一位上的字母的ascii碼,就是這一位上的數 最後mod上乙個很小的數,就對映到0 q 1 這樣就可以把乙個字串轉換為乙個數字 注意事項1 一般情況下,不能把某個字母對映成0...