
字符串哈希
Bahuia
软件工程博士
展开
-
HDU - 1880 字符串哈希
题意:题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1880 通过咒语查找功能,通过功能查找咒语。思路:字符串哈希模板题代码:#include <bits/stdc++.h> using namespace std; const int MAXN = 210000; const int MOD = 100007;struct Node {原创 2017-04-09 11:08:47 · 777 阅读 · 0 评论 -
HDU - 1800 字符串哈希
题意:从n个数中,最少能分出几个单调递增序列。思路:水题。就是找到n个数中出现次数最多的次数。 只是n个数范围有30个十进制位,需要当成字符串处理,这就用到了字符串哈希。代码:#include <bits/stdc++.h> using namespace std; const int MAXN = 3005; const int MOD = 100007;struct Node { No原创 2017-04-09 15:18:05 · 765 阅读 · 0 评论 -
UVA - 11475 字符串哈希
题意:给出一个字符串,在末尾补充最少的字母,使其整个成为一个回文串。思路:字符串哈希的巧妙运用,很显然如果是回文串,那么正着哈希和倒着哈希得到的值是一样的。 而通过哈希的数值来进行拼接组合可以节省大量时间。只要枚举位置x, 将[1,x]这段哈希值与求出的总的哈希值拼接,比较正哈希值与倒哈希值是否相同即可 ps:131进制是个好东西。代码:#include <bits/stdc++.h> usi原创 2017-04-09 16:33:48 · 430 阅读 · 0 评论 -
HDU 4080 字符串哈希+二分
题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4080 找到一个字符串中出现超过m次的最长的子串,以及该子串最有出现的起点。如果有多个相同的就选择最右端出现的。思路:二分长度,然后哈希统计子串出现次数。代码:#include <bits/stdc++.h> using namespace std; typedef unsigned long l原创 2017-09-15 20:35:17 · 598 阅读 · 0 评论 -
HDU 4821 字符串哈希
题意:给出m和L和一个字符串s,要求在s中找到一种子串,满足长度为m*l,且分成m段长度为l的小子串可以使得任意两个小子串不完全相同,问一共有多少个这样的子串。思路:字符串哈希。 预处理出每个长度为L的子串的哈希值,并按照其起始位置%L的结果存在L个vector里,对于每个vector只要单纯看连续m个数是否有相同的数字即可,如果没有就更新答案。代码:#include <bits/stdc++.h原创 2017-09-16 10:29:26 · 368 阅读 · 0 评论