Hash演算法專題

2022-08-12 02:57:14 字數 1128 閱讀 9647

1、【

hdu 3068

】最長回文

題意:求乙個字串(len<=110000

)的最長回文串

解題思路:一般解法是manacher

,但是這一題用

hash

也是可以ac的

假設當前判斷的是以i

為中心偶數最長回文串,那麼

s[2*i+1-k

……i]

與s[i+1

……k]

的雜湊值必定相同

假設當前判斷的是以i

為中心奇數最長回文串,那麼

s[2*i-k

……i-1]

與s[i+1

……k]

的雜湊值必定相同

用二分求出相應的k

1 #include 2 #include 3 #include 4 #include 5 #include 

6using

namespace

std;

7#define ull unsigned long long

8const

int inf = 110000+10;9

const ull bas = 311

;10 ull lhas[inf], rhas[inf], base

[inf];

11char

s[inf];

12int

len, ans, even, odd;

13int getans(int li, int x, int

y)14

25return r-y+1;26

}27intmain()

2840

for(int i=len; i>=1; i--)

4144 ans = 1;45

for(int i=1; i<=len; i++)

4652

if(s[i-1]==s[i+1

])5357}

58 printf("

%d\n

", ans);

59}

60return0;

61 }

view code

hash表 hash演算法

概念 雜湊表 hash table。也叫雜湊表 是依據關鍵碼值 key value 而直接進行訪問的 資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。給定表m,存在函式f key 對隨意給定的keyword值ke...

hash位址 Hash演算法基礎

hash,一般翻譯做 雜湊 也有直接音譯為 雜湊 的,就是把任意長度的輸入,通過雜湊演算法,變換成固定長度的輸出,該輸出就是雜湊值。這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,所以不可能從雜湊值來唯一的確定輸入值。簡單的說就是一種將任意長度的訊...

Hash演算法與Hash碰撞

什麼是hash演算法。雜湊函式 英語 hash function 又稱雜湊演算法 雜湊函式,是一種從任何一種資料中建立小的數字 指紋 的方法。雜湊函式把訊息或資料壓縮成摘要,使得資料量變小,將資料的格式固定下來。該函式將資料打亂混合,重新建立乙個叫做雜湊值 hash values,hash code...