ACM_Hash
文章平均质量分 80
Gatevin
这个作者很懒,什么都没留下…
展开
-
UVALive 4513 (LA 4513) Stammering Aliens 后缀数组 或 hash
题目大意:白书例题给出一个整数m>=1和一个字符串(m 如果有多个子串满足条件输出出现位置最右的大致思路:首先很容易想到后缀数组的做法. 利用height数组分组, 很简单就不说了, 细节见代码另外白书上说可以用hash, 所以用这个题试了一下hash表示第一次用hash...然后就坑了有木有= =刚开始我取得是H函数中x = 2的情况来写这样可原创 2015-02-11 21:16:16 · 759 阅读 · 0 评论 -
HDU 4029 Distinct Sub-matrix 后缀数组 + Hash 2011年上海网络赛I题
题目大意:就是现在给出一个N*M的字符矩阵, 包含N*M个大写字母, 求其有多少个本质不同的子矩阵N, M 大致思路:这个题目当时想的时候以为是AC自动机来进行匹配, 但是128*128*128*128的复杂度太高了当时还是没有仔细想这个题, 其实考虑一维的字符串中计算不同的子串个数的时候, 用到的后缀数组的方法, 就应该知道这题怎么做的首先需要原创 2015-07-23 23:09:47 · 908 阅读 · 0 评论 -
Codeforces Gym 100203D Different vectors 想法题 + Hash
题目大意:就是现在给出N个向量, 对于两个向量他们相等的条件是可以通过轮转使得存在正整数之间的双射使得两者相等给出N个向量问不相等的向量有多少个大致思路:首先对于每个向量, 先求出对于每个位置向左边(或者向右边)最近的和它相同的位置到这个位置的距离作为这个位置的新值例如 1 2 2 3向左找的话就是 4 3 1 4, 只要两个向量这么变化之后通过轮转是一样的话就一定恩那原创 2015-08-15 20:08:51 · 501 阅读 · 0 评论 -
HDU 4275 Color the Tree 树的Hash 2012年长春网络赛I题
题目大意:就是现在给出一棵树, 最多有50000个结点, 现在有M种颜色可以使用(M 需要注意如果两棵树经过旋转等操作之后一样的话视作同样的, 即需要避免树的同构情况大致思路:第一次写关于树的Hash....参考了《Hash在信息学竞赛中的一类应用》这篇文章中提到的树的Hash方法, 当然没采用Rabin-Karp那个hash...首先需要找出整棵树的直径, 那么如果树原创 2015-07-30 19:35:29 · 963 阅读 · 0 评论 -
POJ 1635 Subway tree systems 树的Hash 或 树的最小表示法
题目大意:就是给出从树的中心开始的dfs序, 根据两个dfs序列判断两棵树是否同构大致思路:首先根据dfs一直是从树的中心开始的, 所以不用担心中心的问题, 用树的Hash的话当然可以做另外一个思路是从中心开始的话用树的最小表示法来做, 就是对于子树的字符串表示取字典序排序后的序列, 这样也可以, 当时练练手了...树的最小表示法可以参考这篇博客:戳我代码如原创 2015-07-31 10:46:35 · 1536 阅读 · 1 评论 -
URAL 1486 Equal Squares 二维字符串Hash + 邻接表分组
题目大意:就是现在给出一个N*M的字符串矩阵, 只包含小写字母(1 大致思路:还没写过二维的字符串Hash, 这题当练手了....首先预处理Hash数组, 方便查询然后这题二分正方形长度来判断是否可行如果对于二分的长度暴力枚举起点来判断两个位置的正方形是否相同的话, 用map情况下最坏复杂度是O(log(min(N, M))*N*M*log(N*M))但是用map得原创 2015-07-30 23:40:20 · 1036 阅读 · 0 评论 -
HDU 4821 String (2013长春现场赛I题) 字符串Hash
题目大意:就是现在对于给出的字符串S, 找出S中有多少个长度为M*L的子串, 满足组成M*L长度的字串是有M个不同的长度为L的串拼接起来的大致思路:明摆着的字符串Hash, 预处理Hash之后对于连续的长度为L的段进行枚举即可枚举起点, 每次向后L的一段, 这样是个很常见的枚举技巧了...没什么难度代码如下:Result : Accepted M原创 2015-04-09 22:28:11 · 1119 阅读 · 0 评论 -
Codeforces Gym 100548G The Problem to Slow Down You (Palindromic Tree 或 Hash水过) 2014西安现场赛G题
题目大意:就是现在给你两个长度不超过20W的字符串, 都只包含小写字母, 求相同的回文串对数 (S, T), 其中S == T, S来自第一个字符串, T来自第二个字符串, S和T都是回文串大致思路:首先很容易想到的是Manacher + 后缀数组二分 + Hash的做法, 复杂度O(nlogn), 可惜的是这个题目Hash容易被卡试了好几次Hash之后试了一发二次Hash原创 2015-03-31 18:17:44 · 2431 阅读 · 0 评论 -
(CDOJ) UESTC 606 Palindrome Again 后缀数组二分 + Manacher + Hash
题目大意:就是现在给出两个只包含小写字母的字符串A, B, 一个正整数d, 求三元组(i, j, k)满足A[i, i + 1, .... i + k - 1] == B[j, j + 1, ... j + k - 1] , 且A[i, i + 1, ..., i + k - 1]是回文串, k >= d的三元组数量大致思路:做了2012长春那场区域赛的G题之后就会做这题了..原创 2015-03-29 21:42:31 · 840 阅读 · 0 评论 -
HDU 4426 (ZOJ 3661) Palindromic Substring 后缀数组二分 + Manacher + Hash
题目大意:就是现在对于T(T 大致思路:首先用Manacher算法处理出各个字符为中心的回文半径, 然后由于一个长度为n的字符串中最多只有O(n)个不同的回文串(其实位置不同但序列相同视为相同), 所以可以再利用mx的右移来判断是否可能出现的新的回文串 ( mx 参照2014年国家集训队徐毅论文中Manacher的做法), 对于每一种回文串Hash判重即可然后对于每一种回文原创 2015-03-27 09:23:35 · 1161 阅读 · 0 评论 -
ACdream 1019 Palindrome 树状数组+Hash
题目大意:就是现在给出一个长度不超过100万的字符串, 有两种操作, 修改某个位置的字符, 询问 [L, R] 这个部分的字串是否是回文串大致思路:这个题刚开始用线段树写了一发发现MLE...然后就换树状数组了...不知道zkw线段树能不能行首先对于这个串按照原来的顺序和倒序分别建立树状数组, 保存每个字符对应在全部的串中对应的哈希值然后树状数组查询区间和, 修改的原创 2015-10-01 21:40:16 · 582 阅读 · 0 评论