这个总结写的不错。。
思路比较简单,就是弄两个素数,然后搞一个base,根据base进制对字符串进行取模,搞出来两个数,然后比较时根据两个数来比较。只要有一个不同就是不同。
1 #include <cstdio> 2 #include <cstring> 3 #include <utility> 4 #include <algorithm> 5 using namespace std; 6 7 const int maxn=1e5+5, maxm=1505; 8 const int seed=233; 9 const int p1=1e7+7, p2=1e9+7; 10 int n; 11 char s[maxm]; 12 pair<int, int> a[maxn]; 13 14 bool cmp(pair<int, int> a, pair<int, int> b){ 15 return a.first<b.first; 16 } 17 18 pair<int, int> get_hash(char *s){ 19 long long ans1=0, ans2=0; 20 for (int i=0; s[i]!='