![](https://img-blog.csdnimg.cn/20210806164818768.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
hash
!
fffefw
这个作者很懒,什么都没留下…
展开
-
POJ 1200 Crazy Search
我的第一题字符串哈希。 ac代码#include<stdio.h>#include<iostream>#include<string.h>using namespace std;#define ll long long#define maxn 16000005int n,base;int ss[maxn];int vis[50...原创 2018-08-09 15:11:23 · 108 阅读 · 0 评论 -
双hash板子
我对hash的理解就是可以把一个字符串映射为一个整数,把一个字符串映射为一个整数的方法就是把该字符串里的每种字符看出一个数字,该数字可以由我们规定,也可以由其ascii码决定,例如'a'可以规定其为0,也可以规定其为97,这样还没结束,经过这步操作之后,我们再把这个字符串看为是base进制的数字(对于每道题我们取base时,要大于每一位上的值,例如我们用的十进制数每一位都是小于10的),然后将其转...原创 2018-08-09 15:37:31 · 3120 阅读 · 0 评论 -
bzoj3555 企鹅QQ
题目意思就是找相似的字符串,然后相似的定义就是2个字符串仅在同一个位置不同,只需要枚举砍掉1到len的每个位置的情况就行了#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;#define ull...原创 2018-08-09 17:45:17 · 150 阅读 · 0 评论 -
魔咒词典 HDU - 1880
感觉这题巨毒瘤,读入字符串方面调了好久才避免了读入空白字符。 思路就是对每条信息的魔咒和功能的记录在S1和S2串里,并在ihash数组里通过信息的编号(cnt)确定存放的列,将魔咒(魔咒的hash值存在第一行)或功能(功能的hash值存在第2行)的hash值存入。然后输入一个要查找的字符串,就先求出其hash值,然后在去ihash数组里找。#include<stdio.h&g...原创 2018-08-09 23:42:54 · 207 阅读 · 0 评论 -
字符串 hash + poj 2774 (hash+二分)
这题是求最长公共子串的长度,用二分求,check mid的时候,把s1的全部长度为mid的子串的hash值存入ihash容器,然后再求依次求出S2的长度为mid的子串的hash值,再用二分查找在ihash里找,找到了说明存在长度为mid的公共子串,找不到就存在。这题存s1的hash值的时候用数组存就wa,就vector就ac,很奇怪#include<stdio.h>#i...原创 2018-08-13 20:42:13 · 287 阅读 · 0 评论 -
Text Editor Gym - 101466E (hash+二分)
题目意思是给你一个主串和一个子串,然后要求你在子串的所有前缀串里找到一个最长的串,满足在主串里至少出现了ti次。做法就是求出a串和b串的hash值,然后二分b串的长度就行了。#include<bits/stdc++.h>//二分+hashusing namespace std;#define ull unsigned long longconst int maxn=...原创 2018-08-19 17:25:40 · 200 阅读 · 0 评论 -
Conformity HDU - 1904
把每行的5个数,升序排序然后将每个数字当成是一个字符,求这个5个数对应的hash值,然后求某种hash值出现最多的次数是多少,因为我把每行的那5个数的hash值都存入了mp里,所以遍历一遍mp,如果对应hash值出现次数等于最大次数就加否则不加,这样就可以求得选最受欢迎的课程的学生人数了#include<bits/stdc++.h>using namespace std;...原创 2018-08-20 23:46:01 · 292 阅读 · 0 评论 -
2019 多校4 Hidden Anagrams(hash)
题意就是给你s1和s2,然后让你求最长的公共子串,这里的公共子串是只要s1和s2里出现了2个各字母出现次数均相等的子串,就可以认为这是公共子串了。 这题我一开始用的是二分,结果一直wa,后面看了这组数据(iamaweakishspeller ,williamshakespeare)这组数据正确应该输出18的,但是我二分的mid在9就不行了,然后就可以知道较大规模虽然满足,但是小规模却...原创 2019-04-02 21:52:37 · 250 阅读 · 0 评论 -
二维hash
http://csustacm.com:4803/problem/1115一维hash是把一个字符串用一个整数表示,二维hash是把一个矩阵用一个整数表示。for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) hasha[i][j]=hasha[i][j-1]*base1+a[i][j];for(int i=1;i&...原创 2019-04-16 18:43:25 · 3220 阅读 · 1 评论