随笔分类 - -----字符串处理 5.字符串hash
摘要:题目链接:Russian Code Cup 2017 - Finals B. Similar Words 题意: 给你n个字符串,现在让你构造一个集合X。 1.使得X的每个元素都是这n个字符串中的前缀。 2.X中任意两个元素都不相似(即一个字符串去掉第一个字符后不是另一个字符串) 题解: 我们将所有
阅读全文
摘要:题目链接: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的作用。
阅读全文
摘要:题目链接:hdu 5782 Cycle 题意: 给出两个字符串,判断他们每一个前缀是否循环同构,循环同构的意思就是,字符串首位相接拼成一个环,两个环通过旋转可以相等。 题解: 传送门 1 #include<bits/stdc++.h> 2 #define mst(a,b) memset(a,b,si
阅读全文
摘要:题目链接:hdu 1880 魔咒词典 题意: 给你一个10w的词典,让你输出对应的字段。 题解: map暴力存字符串肯定会卡内存,这里用BKDR字符串hash一下,用map映射一下。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i
阅读全文
摘要:题目链接:hdu 4821 String 题意: 给你一个字符串,问你有多少子串,满足长度为m*len,并且这个子串能分成m个len长度的不同串。 题解: BKDRhash+map来判重。注意的是要以len长分类来扫,这样才不会超时。 1 #include<bits/stdc++.h> 2 #def
阅读全文

浙公网安备 33010602011771号