#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define N 1000005
#define mod 1000000007
#define P 131 char s[N],buf[N];
int n,lens;
ll has[N],p[N],has1[N]; int main(){
p[]=;
for(int i=;i<=;i++)p[i]=p[i-]*P%mod; cin>>n;
scanf("%s",s+);
lens=strlen(s+);
for(int i=;i<=lens;i++)
has[i]=(has[i-]*P%mod+s[i]%mod)%mod; for(int i=;i<=n;i++){
scanf("%s",buf+);
int lenb=strlen(buf+);
//求buf的hash值
for(int j=;j<=lenb;j++)
has1[j]=(has1[j-]*P%mod+buf[j]%mod)%mod;
//比较s和buf min(lens,lenb)个串
int len=min(lens,lenb);
int j;
for(j=len;j>=;j--){//枚举s的后缀,buf的前缀
ll hass=(has[lens]-has[lens-j]*p[j]%mod+mod)%mod;
ll hasb=has1[j];
if(hass==hasb)break;
} for(int k=j+;k<=lenb;k++){
s[++lens]=buf[k];
has[lens]=(has[lens-]*P%mod+buf[k]%mod)%mod;
}
//lens+=lenb-j;
} printf("%s",s+);
}

暴力字符串hash——cf1200E的更多相关文章

  1. BZOJ3555 [Ctsc2014]企鹅QQ[暴力+字符串hash]

    菜到自闭,一道省选小水题都能给我做繁. 要求有一位不同,则对每个串每一位暴力枚举把这一位删掉,放一个分隔符,算一下hash,插表,相似的都应该会被插入同一个桶.最后把hash统计一下即可.复杂度$O( ...

  2. 【字符串算法1】 再谈字符串Hash(优雅的暴力)

    [字符串算法1] 字符串Hash(优雅的暴力) [字符串算法2]Manacher算法 [字符串算法3]KMP算法 这里将讲述  [字符串算法1] 字符串Hash 老版原文: RK哈希(Rabin_Ka ...

  3. 转载:字符串hash总结(hash是一门优雅的暴力!)

    转载自:远航休息栈 字符串Hash总结 Hash是什么意思呢?某度翻译告诉我们: hash 英[hæʃ] 美[hæʃ]n. 剁碎的食物; #号; 蔬菜肉丁;vt. 把…弄乱; 切碎; 反复推敲; 搞糟 ...

  4. (通俗易懂小白入门)字符串Hash+map判重——暴力且优雅

    字符串Hash 今天我们要讲解的是用于处理字符串匹配查重的一个算法,当我们处理一些问题如给出10000个字符串输出其中不同的个数,或者给一个长度100000的字符串,找出其中相同的字符串有多少个(这样 ...

  5. CF1200E Compress Words | 字符串hash

    传送门 Examples input 1 5 I want to order pizza output 1 Iwantorderpizza input 2 5 sample please ease i ...

  6. 请教神牛_字符串hash

    针对字符串hash 我早就听闻可以暴力的干一些事情. 比如 可以... 很多很多 实现O(n)求出 模式串在文本串出现的次数. 但是我不会这什么hash. 我会自然溢出字符串hash 嘿嘿 unsig ...

  7. codeforces gym 101164 K Cutting 字符串hash

    题意:给你两个字符串a,b,不区分大小写,将b分成三段,重新拼接,问是否能得到A: 思路:暴力枚举两个断点,然后check的时候需要字符串hash,O(1)复杂度N*N: 题目链接:传送门 #prag ...

  8. hadoop Partiton中的字符串Hash函数改进

    最近的MapReduce端的Partition根据map生成的Key来进行哈希,导致哈希出来的Reduce端处理任务数量非常不均匀,有些Reduce端处理的数据量非常小(几分钟就执行完成,而最后的pa ...

  9. 转载:字符串HASH

    转载自:Slager_Z 字符串Hash总结 Hash是什么意思呢?某度翻译告诉我们: hash 英[hæʃ] 美[hæʃ]n. 剁碎的食物; #号; 蔬菜肉丁;vt. 把…弄乱; 切碎; 反复推敲; ...

随机推荐

  1. C变量

    C 变量 变量其实只不过是程序可操作的存储区的名称.C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上. 变量的名称可以由字母.数字和下 ...

  2. thinkcmf5 pc切换手机

    1.在simplewind\cmf\common.php 里找到“获取当前主题名”添加 if(cmf_is_mobile()){ $theme = config('cmf_mobile_default ...

  3. kafka ProducerConfig 配置

    kafka-clients : 1.0.1

  4. java集合框架面试要点整理

  5. 94、tensorflow实现语音识别0,1,2,3,4,5,6,7,8,9

    ''' Created on 2017年7月23日 @author: weizhen ''' #导入库 from __future__ import division,print_function,a ...

  6. 微信支付(JsApi)

    这两天有个小项目用的微信网页jsapi支付 用的thinkphp框架开发 ,首次做微信支付 碰了很多壁,做了简单就记录,方便回顾 也希望对大家能有点帮助,也希望路过的大神批评指正.. 一.必备条件及相 ...

  7. E. Covered Points (线段上的整点数)

    题目链接:https://codeforces.com/contest/1036/problem/E 思路:学会了一个在线段上的整数点等于 GCD(x1 - x2, y1 - y2) +  1,然后去 ...

  8. Catch and Buffer

    通常人们所说的Cache就是指缓存SRAM. SRAM叫静态内存,“静态”指的是当我们将一笔数据写入SRAM后,除非重新写入新数据或关闭电源,否则写入的数据保持不变. 由于CPU的速度比内存和硬盘的速 ...

  9. spark textFile读取多个文件

    1.spark textFile读取File 1.1 简单读取文件 val spark = SparkSession.builder() .appName("demo") .mas ...

  10. windows下虚拟环境的安装与创建

    使用虚拟环境的好处: 可以方便的解决不同项目对类库的依赖问题. 可以在系统中Python解释器中避免包的混乱和版本的冲突. 为每个程序单独创建虚拟环境,可以保证程序只能访问虚拟环境中的包,保持全局解释 ...