接上一篇redis ruby客户端学习( 二)对于redis的五种数据类型:字符串(String),哈希(Map),列表(list),集合(sets)和有序集合(sorted sets),上一篇介绍了字符串。1,哈希(Map)hset。设置 key 指定的哈希集中指定字段的值。如果 key 指定的哈...
分类:
其他好文 时间:
2015-01-02 22:13:50
阅读次数:
299
我们二分/分块枚举答案x,暴力把除了最短的字符串以外的其他字符串的x长度子串哈希搞出来,分别扔到set里。然后暴力枚举最短的字符串的x长度字串,查看是否在全部的set里出现过。#include#include#include#includeusing namespace std;typedef un...
分类:
其他好文 时间:
2015-01-02 10:52:35
阅读次数:
139
枚举每个位置,给每个串的前半部分一个哈希值,后半部分一个哈希值,若是它们均相等,则视为这两个串相似。每次转移之后,排序一下就行了。O(L*n*log(n))。#include#include#include#includeusing namespace std;typedef unsigned lo...
分类:
其他好文 时间:
2014-12-28 15:22:42
阅读次数:
160
既然询问的长度是确定的,那么我们可以将所有长度为K的字串弄个哈希值出来,这样字串存在性=>哈希值存在性。自然上溢哈希,base=107比较不错。序列长度n=>n-K+1询问区间[x,y]=>[x,y-K+1]注意特判x是否>y-K+1然后我们注意到没有修改,于是将哈希值离散化后,莫队大法好。#inc...
分类:
编程语言 时间:
2014-12-27 21:42:55
阅读次数:
293
教育我们做Rabin-Karp的时候一定要把模数取大?还是上溢好了。#include#includeusing namespace std;int main() { puts("100000 13"); for(int i=1;i<=100000;i++) putchar(rand...
分类:
其他好文 时间:
2014-12-27 17:28:33
阅读次数:
114
#include#include#include#include#includeusing namespace std;#define MAXN 100001typedef unsigned long long ull;const ull seed=31;ull seeds[MAXN];char s...
分类:
编程语言 时间:
2014-12-27 11:22:56
阅读次数:
189
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4821题目大意:给你M,L两个字母,问你给定字串里不含M个长度为L的两两相同的子串有多少个?哈希+枚举我就是不会枚举这样的,这次涨姿势了。每次枚举起点,然后就能枚举全部的。 1 #include 2 #....
分类:
其他好文 时间:
2014-11-27 01:33:18
阅读次数:
213
经常会遇到需要建立字符串哈希表的问题,例如strtok,或者删除指定字符串的中一些字符等等,可见的字符有256个,那么很容易想到建立一个哈希表,但是其中有一些技巧,可以节省空间,其实可以使用bitmap的形式实现,但是c语言中没有现成的东西,所以需要自己实现...
分类:
其他好文 时间:
2014-09-24 17:43:17
阅读次数:
145
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5349
比赛的时候没看这道题,遗憾,不过想到算法不难,但是写代码比较考代码能力,我自己写了两次都不行,还是看了别人代码,写下了这个
学到:
1、hash字符串第一个下表为0的空起来,写起来方便
2、hash匹配的全部情况就是以text串的所有位置为起点做匹配,当text比...
分类:
其他好文 时间:
2014-09-12 02:25:22
阅读次数:
258
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3602
题意:给出一棵有n个节点的二叉树和一棵有m个节点的二叉树,给出每个节点的左右子树信息,问这两棵树有几个相同的子树。
思路:树的同构,比赛时没想法,赛后看的别人的解题报告。实际上是给每个节点的左右子树一个哈希值,不用像字符串哈希那么麻烦,直接给每个子树...
分类:
其他好文 时间:
2014-09-05 18:18:31
阅读次数:
251