![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM_哈希
yiqzq
人生如此复杂,机会多得像稠密图,我们没理由认输。尽管我们走不了最短路,但图仍是连通图,TLE之前,没有一个节点叫失败。
展开
-
poj3274 (hash)
题意: 思路:这道题一开始看到了是哈希的标签也没联想到是哈希。后来是看了半天题解才看懂了。 这里哈希的应用让我想到了上次看博客是哈希在工程上的查找应用,就和这里的vector用法有点像。#include <cmath>#include <cstdio>#include <algorithm>#include <iostream>#include <vector>using namesp原创 2018-04-29 18:22:29 · 184 阅读 · 0 评论 -
矩阵哈希
原题地址:http://csustacm.com:4803/problem/1115题意:给出一个大矩阵,再给出若干小矩阵,问大矩阵中是否存在小矩阵。思路:二维哈希模板。void Hash(int n, int m) {//对于某个子矩阵,h[n][m]就代表了这个矩阵的哈希值 for (int i = 1; i <= n; i++) {//行哈希 for (i...原创 2019-04-14 20:42:23 · 2509 阅读 · 0 评论 -
hdu 4821 String (hash)
原题地址:https://cn.vjudge.net/contest/258685#problem/S题意:给一个字符串sss,统计长为M∗LM∗LM∗L的字串的个数。如果将该字串看成MMM个长为LLL的串拼接起来,那么这MMM个串必须互不相同。思路:要求m个子串的各不相同,很容易想到可以哈希处理之后用map或者unorder_map来存储哈希值.但是这题如果一一枚举所有符合条件的起点的话,是...原创 2018-10-11 20:07:04 · 171 阅读 · 0 评论 -
FZU - 2280 I - Magic (哈希||字典树)
原题地址:http://acm.fzu.edu.cn/problem.php?pid=2280 题意:给你nnn个字符串,每个字符串有一个值www,有qqq次询问,一共两种操作:一是“1,x,y”“1,x,y”“1, x, y”表示把第xxx个串的www变为yyy;二是“2,x”2,x”2, x”,输出第xxx个串能放几次魔法。放魔法的条件是这样:用串x放魔法,如果在1~n个串中,一个串的www...原创 2018-08-21 16:38:09 · 240 阅读 · 0 评论 -
Manthan, Codefest 16 C. Spy Syndrome 2(哈希+dp)
原题地址:http://codeforces.com/contest/633/problem/C题意:给你m个单词的词典和一句话,这句话中的每个单词都来自字典,字典中的每一个单词重复可用,把这句话所有大写字母变成小写字母,然后反转单词去掉空格,要求你恢复这句话。思路:这题做法好巧妙.我们先对单词进行预处理,存在mapmapmap里面.因为要还原整个字符串,但是我们又不知道究竟单词断在哪里....原创 2018-08-09 17:07:45 · 426 阅读 · 0 评论 -
Wannafly挑战赛11 D.白兔的字符串(字符串哈希)
思路:就是一个哈希区间移动的小技巧. 假设你区间的范围大小是x,那么 h = h * seed + a[i]; h -= a[i] * p;//p是seed的x次方总体思想可以看先扩大再缩小#include &lt;bits/stdc++.h&gt;#include &lt;cmath&gt;#include &lt;unordered_map&gt;#in...原创 2018-07-27 20:33:01 · 230 阅读 · 0 评论 -
Codeforces Round #117 (Div. 2) D. Common Divisors
原题地址:http://codeforces.com/contest/182/problem/D题意:如果把字符串aaa重复mmm次可以得到字符串bbb,那么我们称字符串aaa为字符串b的一个因子,现在给定两个字符串S1S1S1和S2S2S2,求它们的公共因子个数。思路:可以预处理出两两个字符串长度的公共约数,因此用哈徐去判断某一长度的约数是否可行就行了.#include &lt;bi...原创 2018-08-09 15:04:45 · 179 阅读 · 0 评论 -
Codeforces Round #166 (Div. 2) D. Good Substrings (前缀和)
原题地址:http://codeforces.com/contest/271/problem/D 题意:每个字母有被赋予好坏的含义,现在要求某一个字符串有多少不同的子串的中的”坏字母”的数量<=k<=k1−i1−i1-i的范围内有多少坏的字母,这样子在后面枚举每一个子串的时候就能快速判断是否合法.判断字符串是否相同用哈希即可.#include <bits/stdc++....原创 2018-08-09 14:26:09 · 153 阅读 · 0 评论 -
HDU 5510 Bazinga(字符串哈希+剪枝优化)
原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=5510 题意;依次给出n个串, 找出下标最大且不能包含前面所有的串的串(即前面所有的串都是这个串的子串)思路:一开始哈希纯暴力,就T了两发.后来去搜了题解,才知道这题是还需要优化的.先说与一下纯暴力的做法.我首先预处理的所有字符串的哈希值.然后从最大的nnn开始搜索,如果当前的字符串不符合题意...原创 2018-08-04 23:17:01 · 191 阅读 · 0 评论 -
牛客多校第3场 E.Sort String(字符串哈希)
题意:根据原字符串构造新串,对于原字符串从0~|S|-1,i从0开始,从i到最后的子串放到从0到i-1子串的前面。对于这些新构造的子串,从0开始编号,将相同的新字符串们归为一组, 输出一共有多少组,每组有多少个新字符串,以及新字符串的编号。 按字典序输出思路:这题可以采用字符串哈希暴力来求解.对于将后面的值移动到前面形成的新串,我们可以有两种方法来处理.第一种简单粗暴,直接将字符串长度...原创 2018-07-27 17:10:21 · 353 阅读 · 0 评论 -
字符串哈希模板
学了一天的字符串哈希,还是不怎么懂,下面写出来我的一些微薄的理解。模板等做题了再贴!翻了很多博客,发现就是没人介绍关于求区间字串的哈希值的方法,希望有大佬能为萌新解答一下。经过hash处理后,在哈希数组h中,单个的hash[i]表示的不仅仅是简单的前缀和,这与前面乘的系数p有关。 又发现了一个规律:hash[i,j]区间的值其实就是s[i]*p^(j-i)+s[i+1]*p^...原创 2018-04-22 19:56:20 · 722 阅读 · 1 评论 -
hdu 1880 字符串哈希
【题目描述】 据说魔法世界有100000种不同的魔咒,给你一部魔咒词典。当你听到一个魔咒时,你的程序必须说出那个魔咒的功能;当你需要某个功能但不知道该用什么魔咒时,你的程序要替你找到相应的魔咒。如果你要的魔咒不在词典中,就输出“what?”。 【输入描述】 首先列出词典中不超过100000条不同的魔咒词条,每条格式为:[魔咒] 对应功能。 其中魔咒和对应功能分别为长度不超过20和80的字符原创 2018-04-23 21:52:39 · 321 阅读 · 0 评论 -
poj1200 字符串hash
题意:求一个字符串s的所有长度为n的子串,其中原串的不同字符个数为nc. 刚开始学哈希,一直都是套的模板,用的has都是比较大的161,233等,然后都是用map用来对应的,然后一做这题就卡了,一直re或者tle。终于翻了多篇博客之后,对这题以及哈希有了更深刻的理解思路:首先好像做题的时候忽略了一行文字,大概意思就是nc*n不超过16,000,000,这也就是之前不懂为什么是采用的nc进制,...原创 2018-04-23 13:38:48 · 178 阅读 · 0 评论 -
poj2774(二分法+字符串哈希)
题意:就是求两个字符串的最长公共字串坑点:用map会超时,所以选择用vector来存储,然后排序选择用binary_search这个二分函数来查找,有疑问可以参考这篇博客。思路:字符串哈希的入门题,主要是加入了二分的思想。#include <iostream>#include <cstdio>#include <algorithm>#include <string>#include <cst原创 2018-04-24 13:51:44 · 1244 阅读 · 0 评论 -
URAL 1989 Subpalindromes(哈希+线段树)
题意:给你一个字符串,再给出两种操作,一种是给出一个区间判断这个区间是不是回文串,一种是将字符串的某个字符改成另一个。思路:一开始看到给出的时间只有500ms就蒙了,然后就去翻了下博客,说一下自己解题过程中遇到的疑惑。1.这题的哈希多项式公式好奇怪,和之前所做的题的多项式不一样。之前的多项式是字符串的幂次方随着字符串增长而递减的,这题却是递增的。 (这题的公式:h[i]=s[1]+s[2]*p+s原创 2018-04-25 21:14:54 · 294 阅读 · 0 评论 -
spoj EPALIN Extend to Palindrome(hash)
题意:给出一个字符串,要你在字符末尾添加最少的字符,是字符串变成一个回文串 思路:写题的时候思路大致是正确的,就是还有些细节没搞清楚。 1.很明显,如果用hash来做这题,因为判断回文串的题目,需要用到正反两次hash,就和之前写的题目一样。 2.这题关键在奇数和偶数的判断,就是在枚举某个字符的时候,判断这个以这个字符作为中心,两边是否相等或者以这个字符作为右边字符串的第一个字符,左右两边是否原创 2018-04-27 00:23:20 · 366 阅读 · 0 评论 -
codeforces 126B password (哈希)
题意:给出一个字符串,让你判断是否存在一个字符串的一个字串同时出现在字符串开头,中间(不能从第一个字母开始或者以最后一个字母结尾),和最后。一开始以为只给了2s,需要二分,不然会超时,后来写完了,测了样例才发现这题是不能用二分来写的,因为枚举的长度是不存在前后关系的。举个例子,假如说你判断前缀为4的时候,答案是不存在的,但这并不能说明前缀为5或者3的时候是不存在的。wa了之后,无奈只能去枚举,还是以原创 2018-04-27 20:34:19 · 311 阅读 · 0 评论 -
codeforces 514C Watto and Mechanism(迷之哈希)
题意:给出n个模式串,给出m个字符串,问字符串能否通过变换一次成为模式串(必须变换)1.这题用哈希来写好迷啊,感觉这题有卡普通哈希常数的数据 2.一开始用来ull来让数据自动溢出,然后就一直被卡,无奈只能自己手动取模。注意:手动取模的时候最好将ull改成ll,不然会wa(虽然我也不知道为什么.但是好像普通的哈希数据好像也会被卡,这里推荐3组能过的哈希常数seed=17 ,MOD=1e9+9 se原创 2018-04-28 10:39:43 · 261 阅读 · 0 评论 -
URAL 1486 B - Equal Squares(二分+二维哈希)
原题地址:http://acm.timus.ru/problem.aspx?space=1&num=1486题意:在一个N×M的字符矩阵中找到两个相同的子正方形矩阵(可以相交),并使找到的两个子正方形矩阵的边长尽量大。思路:对字符矩阵二维哈希预处理,之后二分最大子矩阵的边长即可.由于要输出两个矩阵的左上角坐标,那么我们可以利用令map的val为一个pair存一个子矩阵的左上角位置,之...原创 2019-05-10 09:09:32 · 193 阅读 · 0 评论