#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. 团队冲刺DAY5

    团队冲刺DAY5 今天的内容是组件和事件处理这一部分,也就是需要扣一个消息系统的图形界面. 提到这部分,就不得不说Java Swing. 常用组件及部件 JTextField:文本框 JTextAre ...

  2. Android:关于onConfigurationChanged()的介绍(转)

    转载:http://www.cnblogs.com/bluestorm/p/3622444.html 从事Android开发,免不了会在应用里嵌入一些广告SDK,在嵌入了众多SDK后,发现几乎每个要求 ...

  3. javaweb登录验证码的实现

    第一种 第一步:  JSP <li><input name="validCode"  id="validCode" type="te ...

  4. 线程同步(基于java)

    java线程 同步与异步 线程池 1)多线程并发时,多个线程同时请求同一个资源,必然导致此资源的数据不安全,A线程修改了B线 程的处理的数据,而B线程又修改了A线程处理的数理.显然这是由于全局资源造成 ...

  5. 97、PageRank算法学习

    最近由于.......你懂得,需要一些搜索方面的知识,于是乎我重新复习了一下上半年读的那本书<数学之美>Dr吴军老师写的. 感觉读完这种书还是写一下比较好,因为将来说不定就会忘记了. 接下 ...

  6. 微信小程序 Page构造函数重写

    //utils/utils.js const oldPage = Page; console.log(oldPage) Page = function (app) { //定义新函数 app.newS ...

  7. 力扣算法——136SingleNumber【E】

    Given a non-empty array of integers, every element appears twice except for one. Find that single on ...

  8. Jackson教程

    Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象.Jackson所依赖的jar包较少,简 ...

  9. 调用WPF程序时传入参数

    http://blog.csdn.net/martin_cheng/article/details/41351013 http://blog.csdn.net/libby1984/article/de ...

  10. CF_127E reader Display

    这道题其实找到规律之后其实不难,和破损的键盘一样,都有点递推转移的感觉 题意: 你可以进行这样一次操作:选一个点,然后把这个点横切竖切直到正对角线上面的点,全部翻转过来,问你要进行多少次操作才能把所有 ...