一維字串hash模板
#include<bits/stdc++.h> #define LL long long #define INF 0x3f3f3f3f #define INFLL 0x3f3f3f3f3f3f #define ULL unsigned long long using namespace std; const int maxn = 120000+50; string s[maxn]; int H_head[maxn]; int H_next[maxn]; int H_rear; string word[maxn]; void init() { memset(H_head,-1,sizeof(H_head)); memset(H_next,-1,sizeof(H_next)); H_rear = 0; } int Hash(string s) { int ret = 0; for(int i = 0;i<s.size();i++){ ret = ret * 131 + s[i]; } return (ret & 0x7fffffff) % 111117;//小於長度的最大素數 } int add(string s) { int h = Hash(s); for(int i = H_head[h] ; ~i ; i = H_next[i]){ if(word[i]==s) return 0; } word[H_rear] = s; H_next[H_rear] = H_head[h]; H_head[h] = H_rear++; return 0; } int query(string s) { int h = Hash(s); for(int i = H_head[h] ; ~i ; i = H_next[i]){ if(word[i]==s) return 1; } return 0; }
相關推薦
一維字串hash模板
#include<bits/stdc++.h> #define LL long long #define INF 0x3f3f3f3f #define INFLL 0x3f3f3f3f3f
字串Hash模板
博主連結 #include<stdio.h> #include<bits/stdc++.h> #define ll long long int using namespace std; ll gethash(char *s,int m){
字串雜湊[hash模板]
有這麼一類神奇的問題,給你一堆字串,然後問你有多少本質不同的字串 ~~ 或許有頭鐵的同志可以開一個map ~~ 所以有了hash大法 大致思想 我們判斷兩個字串相等,無非就是判斷他們每一位是不是相等,但是如果讓你判斷兩個數字是不是相等,是不是就簡單了許多呢?
一維陣列、二維陣列、字串總結
首先讓我們看看一維陣列 一維陣列主要在高精度計算上,所謂高精度計算,也就是模擬計算過程,然後就沒有什麼了…… 然後是二維陣列 二維陣列就是座標系,難點在座標的變化上: //1順時針旋轉90度 fo
js將字串轉換為一維二維陣列
在Js程式設計中,有時候需要將一個字串轉換為一維陣列或者是二維陣列,現在分享給大家我自己把字串轉換為陣列的方法。 直接上原始碼: <script type="text/javascript"> //這是需要轉換的字串 var scoreStr =
字串Hash總結模板
字串匹配 感覺用字串hash 可以水過很多字串匹配的問題,(KMP太頭疼了) 實現方法: 計運算元串的hash值,在長串中從第一位開始,往後延伸到和子串同樣長度,然後算出這段字元的hash值,看是否和子串的hash值相等。 題目連結
字串系列(一)——偉大的字串Hash
在刷省選時,我們時常會遇到一些字串的題目。也有許多的演算法供我們選擇,如:KMP、拓展KMP、最小表示法、Manacher、Trie、字尾陣列、字尾自動機、AC自動機(樹上KMP)等等等,日後我會逐一填坑。今天先來介紹一個最暴力且用途最大的——字串Hash。首先,要想學好Ha
C#呼叫C++ 平臺呼叫P/Invoke 結構體--含有內建資料型別的一維、二維陣列、字串指標【六】
【1】結構體中含有內建資料型別的一維陣列 C++程式碼: typedef struct _testStru3 { int iValArrp[30]; WCHAR szChArr[30];
每日一題之 騰訊演算法崗筆試題 (字串Hash)
####描述 給定A,B兩個字串,定義如下規則 對於每一個A的長度為k的不同子串,統計子串在B中出現的次數 A和B的字串係數就是所有出現次數之和。 如 A=“abab“ B = “ababab“ k
字串hash補充(快速冪模板)
題目: 字串的雜湊就是通過某些對映關係,將字串對映到數字上去方便進行比較。 比如二進位制數110110,我們知道這個數的十進位制是 54 基於同樣思路,我們可以定義這樣的一個雜湊函式: 雜湊函式
PHP[多維陣列轉字串]和{多維陣列轉一維陣列}
/** * @method 多維陣列轉字串 * @param type $array * @return type $srting * @author yanhuixian */ function arrayToString($arr) { if (is_array($ar
線段樹模板題(結構體&一維陣列)(區間最值,求和)
1099: [視訊]線段樹(元問題byscy)線性結構求極值和修改 時間限制: 1 Sec 記憶體限制: 128 MB 提交: 496 解決: 165 [提交][狀態][討論版] 題目描述 【題意】 給出N個數,兩種操作: 1、C x y:修改
php對一維陣列字串和數字進行排序
//Example for sorting by values for an alphanumeric array also having case-sensitive data $exampleArray1 = $exampleArray2 = arr
將字串轉化為一維、二維陣列
package testJava815; import java.io.ObjectInputStream.GetField; public class TestArray {private static String[] getRequiredPhotos() {retu
一維陣列,二維陣列,字串陣列,指標的有關知識點整理
到今天為止算是正式把陣列,字串,以及指標這一塊初步複習了一遍。 下面是有關知識點總結: int array[2]={1,2};//一維陣列 array:一維陣列的地址,同時也是一維陣列首元素的地址* array+i :一維陣列第i+1個元素的地址 *array:一維
cf244D. Match & Catch 字串hash (模板)或 字尾陣列。。。
可以用各種方法做,字串hash,字尾陣列,dp,拓展kmp,字典樹。。。 字串hash(模板) BKDR Hash Function : // BKDR Hash Function unsigned int BKDRHash(char *str) {
[Vue原始碼]一起來學Vue模板編譯原理(二)-AST生成Render字串
本文我們一起通過學習Vue模板編譯原理(二)-AST生成Render字串來分析Vue原始碼。預計接下來會圍繞Vue原始碼來整理一些文章,如下。 一起來學Vue雙向繫結原理-資料劫持和釋出訂閱 一起來學Vue模板編譯原理(一)-Template生成AST 一起來學Vue模板編譯原理(二)-AST生成Rende
會超時的dfs01背包+快一點的一維DP01背包
iostream return end ret ostream .cn img nbsp style ( ⊙ o ⊙ ) 題目: (⊙v⊙),代碼: 1.dfs //會超時!!!! #include<iostream> #include
JAVA:一維數組
取數 使用 引用類型 spa 分配內存 ever () 最小 tint 1 /* 2 數組:存儲同一種數據類型的多個元素的容器。 3 4 定義格式: 5 A:數據類型[] 數組名; 6 B:數據類型 數
指針與一維數組和二維數組以及字符串指針數組的學習筆記
個人 alt sizeof mage .com size 關系 指向 應該 廢話不多少,直接上代碼,關鍵的東西已經註釋了,看註釋信息理解即可。 說明:本程序討論了一維數組和指針的關系,談論了二維數組和指針之間的關系,討論了字符串數組指針數組和指針之間的關系,代碼中以給出定義