字符串哈希
H_ang
记录一些东西吧!
展开
-
字符串哈希 - POJ - 3461 子串的数量
题目链接:http://fastvj.rainng.com/problem/10368/origin题目大意:给你一个S串和T串,问你S串在T串出现了几次(不重叠出现)。思路:直接把S串哈希一下,再去T字符串枚举长度与S串相同的字串,看是否相同。统计个数。#include <bits/stdc++.h>using namespace std;#define ull unsi...原创 2019-05-31 12:08:25 · 304 阅读 · 1 评论 -
字符串哈希 - poj - 3974 最长回文串长度
题目链接:http://poj.org/problem?id=3974题目大意:多样例:每个样例输出它的最长回文串。T<=30, n<=1000000思路:想用用字符串水一水,以为会T,结果AC了。时间复杂度:O(T* n * log n)直接枚举回文中心:二分回文长度。作为奇数回文?还是偶数回文?用了两个哈希,一个倒着维护。方便判断是否相等。#include <...原创 2019-06-01 17:38:55 · 306 阅读 · 0 评论 -
字符串哈希 - CodeForces - 580E 双哈希+线段树维护:区间修改字符+询问字符串是否周期
题目链接:http://fastvj.rainng.com/problem/246827/origin题目大意:给你一个长度为n的字符串,m次修改,q次询问;2 L R 1:询问[L, R]是否为周期为1的字符串1 L R x:把[L, R]的字符修改为x周期:一个串s以d为周期长度指的是d<=|s|且对任意1<=i<=|s|-d有s[i]=s[i+d]所以:(n...原创 2019-05-31 22:54:59 · 325 阅读 · 0 评论 -
字符串哈希 - URAL - 1989(单点修改+询问区间回文?) 树状数组:单点修改+维护区间哈希
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1989题目大意:给你一个字符串s, q个操作:1:palindrome? x y :询问[x, y]是否为回文串2:change 4 b :把s[4]修改为b...原创 2019-05-31 17:59:10 · 502 阅读 · 0 评论 -
字符串哈希 - poj - 2774 最长公共子串(连续)+用二分查找替代map的判断重复方法
题目链接:http://poj.org/problem?id=2774题目大意:就是求两个字符串的最长公共字串。二分长度,然后暴力哈希,map判断是否重叠竟然T了。然后把第一个串的长度为mid的子串加入vector。对于模式串的子串只要二分查找是否存在vector中就行了。巧妙的优化方法。#include<bits/stdc++.h>#define ull unsigned ...原创 2019-05-31 17:59:21 · 411 阅读 · 0 评论 -
字符串哈希 - POJ - 1200 字符串哈希-进制的选取
题目链接:http://poj.org/problem?id=1200题目大意:给你一个n和nc,以及一个字符串s,保证字符串里出现的字符种类等于nc。让你求长度为n的字符串种类。题目保证可能的字符集出现的子串最大数量不超过160万。思路:直接暴力把哈希值加入set,输出st.size(),复杂度O(n*logn),T了。发现这个如果把nc作为进制,子串最大数量不超过160万,那么这个...原创 2019-05-31 16:35:24 · 227 阅读 · 0 评论 -
字符串哈希 - HDU-1496 整数哈希
题目链接:题目大意:题意:给出方程a(x1 ^ 2)+b(x2 ^ 2)+c(x3 ^ 2)+d(x4 ^ 2)=0的系数abcd,求共有多少组正整数解。a, b, c, d=[-50,50]x1, x2, x3, x4=[-100,100]四重循环肯定T了。因为平方有非负性,所以首先下面情况特判:if(a<0&&b<0&&c<0&a...原创 2019-05-31 14:07:34 · 179 阅读 · 0 评论 -
字符串哈希 - HDU-1280 整数哈希求两个数组合和的前m大个数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1280题目大意:有N个数,让他们两两求和,得到 (n)*(n-1)/2 个数,让你输出前m大个数(从大到下)给定一个包含N(N<=3000)个正整数的序列,每个数不超过5000,思路:二重循环求出所有的和,加入multiset再输出就是,时间复杂度(n^2 * log(n^2))直接T。...原创 2019-05-31 13:55:56 · 197 阅读 · 0 评论 -
字符串哈希 - SCU - 4438 栈维护哈希前缀和
题目链接:http://acm.scu.edu.cn/soj/problem.action?id=4438题目大意:给定一个字符串A和一个字符串B,如果如果B中存在A字符串,就在B中把A字符串去掉,输出最后去掉A字符串之后B字符串用一个栈维护字符,如果栈的倒数|A|个数==B那么删除这你个数。继续添加字符。根据哈希值的计算公式:(左为高位。相当于p进制的数。)根据子串哈希值的计算公...原创 2019-05-31 13:44:31 · 681 阅读 · 0 评论 -
字符串哈希 - POJ - 1743 对差值哈希-O(n*log判断是否有固定长度并且不重叠的子串重复出现)
题目链接:http://poj.org/problem?id=1743题目大意:给你一段长度为(1<=n<=20000)的音符:每个音符是1…88范围内的整数,每个音符代表钢琴上的一个键,一个旋律的子序列满足下面三个条件:1.是至少五个音符长2.在音乐片段的其他地方再次出现(可能转换 - 见下文)3.与其至少一个其他外观不相交(即,不重叠)转换:将恒定的正值或负值添加到主题...原创 2019-05-31 13:17:00 · 217 阅读 · 0 评论 -
字符串哈希 - HDU - 1880 询问字符串是否存在 哈希+map
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1880题目大意:[ ]中的为魔咒, 右边为功能。询问:询问是魔咒,输出功能询问是功能,输出魔咒直接哈希+map#include <bits/stdc++.h>using namespace std;#define ull unsigned long long#defi...原创 2019-05-31 12:24:08 · 199 阅读 · 0 评论 -
字符串哈希 - POJ - 2752 公共前后缀
题目链接:http://poj.org/problem?id=2752给你一个字符串问你它有多少个前缀=后缀,按长度从小到大输出思路:暴力枚举每个前缀,判断与回缀的哈希值是否相等。#include <bits/stdc++.h>using namespace std;#define ull unsigned long long#define LL long long...原创 2019-05-31 12:19:49 · 349 阅读 · 0 评论 -
字符串哈希 - POJ - 2406 字符串的循环周期
题目链接:http://poj.org/problem?id=2406题目大意:如果a=“123”, 那么a^2=“123123”, a^3=123123123现在给你一个字符串a^n,让你确定最小的n为多少?思路:枚举字符串长度n的因数,再暴力每段哈希值是否相等。#include <bits/stdc++.h>using namespace std;#define u...原创 2019-05-31 12:14:04 · 410 阅读 · 0 评论 -
牛客练习赛48 正整数哈希
题目链接:https://ac.nowcoder.com/acm/contest/923/B题目大意:当时看了看数太大,大整数复杂度也高,仔细看了看公式既然全部是乘法,那么取模后结果应该也是一样的。a[i], b[i]范围<=10^5直接预处理阶乘。哈希搞一搞。当时有预感,会卡ull。不过都写完了。直接交一发,果然wa。然后直接mod个大整数就AC了。#include <bits...原创 2019-06-22 23:31:22 · 259 阅读 · 0 评论