sample input
3 4
daababac
sample output
5
題意:
輸入n和m;
n表示要尋找字串長度,m表示字母種類。
#include
#include
using
namespace
std;
#define maxn 16000005
int num[300];
char s[maxn];
int a[maxn];
int main()
for(i=0;i<=l-n;i++)
}printf("%d\n",ans);
}}
注意:
1.數比較大,所以一定要用雜湊演算法了。
2.memset其實可以省略(貌似因為全域性變數陣列中元素自動變為0)
3.重點為sum=sum*m+num[s[i+j]];(貌似為進製數,m在這裡起到了作用)
4.總結先把各個字母賦值為1,2,3,4 。 然後 把各個長度為n的字串賦值(如abc)利用公式賦予特定的值,最後利用雜湊判斷是否存在。
5. for(i=0;i<=l-n;i++) 為小於等於
瘋狂搜尋( POJ 1200) 雜湊
您的任務是編寫乙個程式,該程式給定子字串的大小n,文字nc中可能出現的不同字元的數目以及文字本身,確定出現在字串中的大小為n的不同子字串的數目。文字。輸入項輸入的第一行由兩個數字n和nc組成,它們之間正好隔開乙個空格。這之後是進行搜尋的文字。您可以假設由可能的字符集形成的最大子字串數不超過1600萬...
字串RK匹配 POJ 1200
轉換為nc進製!複雜度o len include include include include include include include using namespace std define n 16000005 define fre freopen a.txt r stdin char s...
雜湊表入門 雜湊桶簡介
最近在搞通訊協議,感覺要加強一下雜湊表和雜湊桶的學習,把學習的內容通俗的表達出來,也和大家分享一下,讓新入門的童鞋很快理解。我們都學過函式,三要素 自變數x,因變數y,對應關係f。在函式裡x y通過對映關係f一一對應。那什麼是雜湊呢?就是記錄的儲存位置和他的關鍵字之間建立乙個確定的對應關係f,這裡我...