一、模板方法 #include<bits/stdc++.h>using namespacestd;constintK =130;//一个大于128的数字constintMOD =23333;//素数常数intn;//字符串个数intans;//结果strings;//字符串// 链表vector<string> linker[MOD +10];voidinsert(stringt){//计算字符串t的HASH值inthash =1;for(inti =0; s[i]; i...
P3370 【模板】字符串哈希 1#include <bits/stdc++.h>2usingnamespacestd;3typedef unsignedlonglongllu;4constintmaxn =10005;5llubase=131, mod =212370440130137957ll;6llu a[maxn];7chars[maxn];8intprime =233317;9llu hashe(char*s) {10intlen =strlen(s);11llu ans =0;12for(inti =0; i ...
P3370 【模板】字符串哈希 题目传送门 一、模板方法 #include <bits/stdc++.h> using namespace std; const int K = 130; //一个大于128的数字 const int MOD = 23333; //素数常数 int n; //字符串个数 int ans; //结果 string s; //字符串 // 链表 vector<string> linker[MOD + 10]; void...
hash模板 1LL强制转换成long long 代码 #include<iostream>#include<algorithm>#include<cstdio>#include<set>#include<cstring>usingnamespacestd;//#define mod 1e9+7//不能这样宏定义constintmod=1e9+7;#defineD 131#defineM 2333+7longlongn,g[M],f[M];strings;set<longlong>t;voidpredeal(intx){/...
如果你仔细研究过了(或者至少仔细看过AC人数的话),我想你一定会明白字符串哈希的正确姿势的^_^ map水过、、、 代码语言:javascript 复制 1 #include<iostream> 2 #include<cstdio> 3 #include<map> 4 #include<cstring> 5 using namespace std; 6 int ans=0; 7 map<string,bool>mp; 8 int main() ...
洛谷P3370 【模板】字符串哈希 洛谷传送门 题目描述 如题,给定 NN个字符串(第 ii个字符串长度为 M_iM**i,字符串内包含数字、大小写字母,大小写敏感),请求出 NN个字符串中共有多少个不同的字符串。 #友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转PJ试炼场:) ...
P3370 【模板】字符串哈希 luogu 传送门 直接上板子 #include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<cstring> #define LL long long #define MOD1 1000000007 #define MOD2 1000000009 #define seed1 163 #define seed2 131 using namespace std; int n; struct OI{ ...
洛谷P3370 【模板】字符串哈希 洛谷传送门 题目描述 如题,给定 NN个字符串(第 ii个字符串长度为 M_iM**i,字符串内包含数字、大小写字母,大小写敏感),请求出 NN个字符串中共有多少个不同的字符串。 #友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转PJ试炼场:) ...
P3370 【模板】字符串哈希 题解 求不同字符串的数量 这题用set也可以过,但是hash更高大上嘛。 哈希其实就是将一个字符串映射成一个值,并且要让这些值不能大概率地重复 进制哈希:进制哈希的核心便是给出一个固定进制 #include<iostream> #include<cstring>...
把一个大的整数映射到一个小整数的过程叫做哈希,如i % M; 而用来存储元素的vector<int> a[M]则称为哈希表。 2、字符串如何哈希? 字符串也可以转化为整数,只需把字符串当做p进制数来处理即可 例如:ABC,转成数字:'A' * p2+ 'B' * p1+ 'C' * p0 ...