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 #includeview code6using
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 }
hash表 hash演算法
概念 雜湊表 hash table。也叫雜湊表 是依據關鍵碼值 key value 而直接進行訪問的 資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。給定表m,存在函式f key 對隨意給定的keyword值ke...
hash位址 Hash演算法基礎
hash,一般翻譯做 雜湊 也有直接音譯為 雜湊 的,就是把任意長度的輸入,通過雜湊演算法,變換成固定長度的輸出,該輸出就是雜湊值。這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,所以不可能從雜湊值來唯一的確定輸入值。簡單的說就是一種將任意長度的訊...
Hash演算法與Hash碰撞
什麼是hash演算法。雜湊函式 英語 hash function 又稱雜湊演算法 雜湊函式,是一種從任何一種資料中建立小的數字 指紋 的方法。雜湊函式把訊息或資料壓縮成摘要,使得資料量變小,將資料的格式固定下來。該函式將資料打亂混合,重新建立乙個叫做雜湊值 hash values,hash code...