![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
哈希算法
keyboarder_zsq
你所认为的极限,其实是别人的起点。
展开
-
POJ2549【hash分离链接法】
123原创 2017-02-28 21:29:46 · 89 阅读 · 0 评论 -
HDU1488【分离链接法】
#include using namespace std; typedef long long LL; const int X=1e6+7; struct asd{ int next; int num; LL id; }q[X]; int link[X]; int tol; void init() { tol=1; for(int i=0;i<X;i+原创 2017-03-31 22:00:02 · 561 阅读 · 0 评论 -
UVA6284【状态前缀异或+hash】
题意: 给一个字符串,问有多少个区间能构成回文串。 构成要求只要满足存在所有种类字符数量相等,或者只存在一种的个数是奇数。 思路: 由于字符比较少,考虑 2522^{52} 状压,long long 还是吃的消的。 然后一直加入状态, 先检查这个状态是否满足。我们可以看到对于状态(单纯考虑4位): 1 1 1 0 如何从他割掉一些状态达到满足,可以看到有1 0 0 0这个是吧,原创 2017-07-06 02:17:21 · 501 阅读 · 0 评论 -
POJ3349【手写Hash】
基础题。 利用邻接表,价值hash值为数组head[]的下标,然后在该链下寻找。//#include <bits/stdc++.h> #include<iostream> #include<cstdio> #include<cstring> #include<string.h> #include<queue> #include<cmath> #include<algorithm> using na原创 2017-07-08 01:51:28 · 610 阅读 · 0 评论 -
POJ3461【1e6 字符串 hash模板】
两种hash方法(双hash…算了吧,除非字符串很短,然后又wa了才用)方法1: unsigned long long hash[N]; 定义一个unsigned long long类型的变量,它的范围是在[0, 2^64) 内,这就相当于,当数超不过2^64-1后,它会溢出!这就相当于一个数模2^64的过程。 那么hash函数可以理解为: hash[i]=(hash[i−1]×p+s[i]原创 2017-08-15 10:04:00 · 505 阅读 · 0 评论 -
Codeforces662C【字符串hash维护+DP】
思路: 每个串可以用多次且每个串的长度<=1000,那么就简单了。 字符串可以字典树或者hash维护,然后暴搞就好了,记录一下路径,然后输出就好了。 1e6的字符串hash复杂度还是可观的 复杂度:O(N*W)//#pragma comment(linker, "/STACK:102400000,102400000") #include <stdio.h> #include <string.原创 2017-09-23 01:22:11 · 356 阅读 · 0 评论