字符串哈希:将字符串转化为一个整数(更便于比较),并尽可能做到字符串与整数唯一对应
hash[l...r]=(hash[r]-hash[l-1]*(p^(r-(l-1))))%mod,结果可能为负数,要加模
暴力过kmp:
求出子串s2的hash值,在母串s1里找所有长度为 |s2| 的子串算出其hash值,与s2的hash值比较
具体对于字符串哈希的应用参看https://www.cnblogs.com/Slager-Z/p/7807011.html
字典树模板:
此种模板应用于某前缀在建好的字典树中是否出现
/*Trie树(字典树) 2011.10.10*/ #include <iostream> #include<cstdlib> #define MAX 26 using namespace std; typedef struct TrieNode //Trie结点声明 { bool isStr; //标记该结点处是否构成单词 struct TrieNode *next[MAX]; //儿子分支 }Trie; void insert(Trie *root,const char *s) //将单词s插入到字典树中 { if(root==NULL||*s=='