随笔分类 -  -----字符串处理 5.字符串hash

摘要:题目链接:Russian Code Cup 2017 - Finals B. Similar Words 题意: 给你n个字符串,现在让你构造一个集合X。 1.使得X的每个元素都是这n个字符串中的前缀。 2.X中任意两个元素都不相似(即一个字符串去掉第一个字符后不是另一个字符串) 题解: 我们将所有 阅读全文
posted @ 2017-10-10 19:31 bin_gege 阅读(242) 评论(0) 推荐(0)
摘要:题目链接:hdu 6068 Classic Quotation 题意: 给你两个字符串S和T,现在有q个询问,每个询问给出一个l,r,问S[1..i] 和 S[j..n](1≤i≤L,R≤j≤n)中有多少个T,求出全部的总和。 题解: Claris的官方题解: 这里我用hash代替了kmp的作用。 阅读全文
posted @ 2017-08-05 16:02 bin_gege 阅读(312) 评论(0) 推荐(0)
摘要:题目链接:hdu 5782 Cycle 题意: 给出两个字符串,判断他们每一个前缀是否循环同构,循环同构的意思就是,字符串首位相接拼成一个环,两个环通过旋转可以相等。 题解: 传送门 1 #include<bits/stdc++.h> 2 #define mst(a,b) memset(a,b,si 阅读全文
posted @ 2017-07-20 15:05 bin_gege 阅读(182) 评论(0) 推荐(0)
摘要:题目链接:hdu 1880 魔咒词典 题意: 给你一个10w的词典,让你输出对应的字段。 题解: map暴力存字符串肯定会卡内存,这里用BKDR字符串hash一下,用map映射一下。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i 阅读全文
posted @ 2017-02-04 20:20 bin_gege 阅读(124) 评论(0) 推荐(0)
摘要:题目链接:hdu 4821 String 题意: 给你一个字符串,问你有多少子串,满足长度为m*len,并且这个子串能分成m个len长度的不同串。 题解: BKDRhash+map来判重。注意的是要以len长分类来扫,这样才不会超时。 1 #include<bits/stdc++.h> 2 #def 阅读全文
posted @ 2017-02-04 19:28 bin_gege 阅读(117) 评论(0) 推荐(0)