思路 对于 并不好考虑,可以针对 考虑。 发现每次移动会在一堆 之间移动把一个 移动 $2$ 位,因此只需要记录所有 位置的奇偶性即可,具体实现可以用 Hash,对开头奇数/偶数分别开 Hash 表记录。 这里 Hash 实现有一个方法:(BKDRHash) $$h_i = ph_{i 1} + s ...
分类:
其他好文 时间:
2020-03-08 17:47:03
阅读次数:
57
前言 A:这么简单的东西,怎么现在才学?? B:别提了,还不是因为菜o(╥﹏╥)o A:那打算讲些什么东西 B:$BKDRHash$、$Rabin karp$以及简单应用 简洁 所谓字符串哈希:其实就是把字符串映射成数值储存下来分别直接比较 $BKDRHash$:程序便于记忆和使用,冲突概率较低,在 ...
分类:
其他好文 时间:
2019-02-14 00:18:38
阅读次数:
179
#1602 : 本质不同的回文子串的数量 #1602 : 本质不同的回文子串的数量 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个字符串S,请统计S的所有子串中,有多少个本质不同的回文字符串? 注意如果两个位置不同的子串满足长度相同且对应字符也都相同,则认为这 ...
分类:
其他好文 时间:
2017-10-05 15:40:34
阅读次数:
900
dfs搜索+剪枝 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 char fin[48]; 5 char a[80]; 6 int atop=0; 7 char c; 8 int cnt; 9 int vis[1000 ...
分类:
其他好文 时间:
2017-09-15 12:06:16
阅读次数:
206
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4821 题意:给出M和L,和一个字符串S。要求找出S的子串中长度为L*M。而且能够分成M段。每段长L,而且M段都不同样的子串个数。 思路:一道字符串哈希题。哈希的方法是BKDRHash。哈希中进制是31,13 ...
分类:
其他好文 时间:
2017-07-06 14:20:02
阅读次数:
152
题意:十进制小数转二进制,输出二进制小数,无限循环则输出NO ...
分类:
其他好文 时间:
2017-07-01 22:37:54
阅读次数:
215
题目链接:hdu 4821 String 题意: 给你一个字符串,问你有多少子串,满足长度为m*len,并且这个子串能分成m个len长度的不同串。 题解: BKDRhash+map来判重。注意的是要以len长分类来扫,这样才不会超时。 1 #include<bits/stdc++.h> 2 #def ...
分类:
其他好文 时间:
2017-02-04 20:08:39
阅读次数:
149
哈希: 字符串(数字同理): 例如有100000个字符串,现在要插入一些字符串,插入前比较是否已经存在避免含有重复数据 用暴力计较的话会比较慢,在某字符串插入时,最好的情况是在第一个位置就遇见该字符串,但如果在比较了100000后发现没有某字符串,然后进行插入,那么比较100000次的比较则是浪费时 ...
分类:
其他好文 时间:
2016-11-24 21:43:16
阅读次数:
155
题意:给你一串字符串s,再给你两个数字m l,问你s中可以分出多少个长度为m*l的子串,并且子串分成m个长度为l的串每个都不完全相同 首先使用BKDRHash方法把每个长度为l的子串预处理成一个数字,接着根据题意直接map判重 BKDRHash:一种常用字符串hash,hash简单来说就是把一串字符 ...
分类:
其他好文 时间:
2016-09-20 06:49:51
阅读次数:
189