字符串算法
余西子
这个作者很懒,什么都没留下…
展开
-
HDU 6230-Palindrome 马拉车算法+树状数组
Palindrome Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 770 Accepted Submission(s): 294 Problem Description Alice...原创 2018-08-17 21:12:39 · 225 阅读 · 0 评论 -
hdu 5972 Regular Number &的字符串快速匹配
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5972题意: 给你一个目标串长度以及每个位置可能出现的数字,比如第一位可以是1 2 3,第二位可以是4 1 3,这样的话如果匹配串里出现了13,42 ,41 都算是合理的。要你找出这些串并输出。做法: 很神奇的做法,用bitset来先维护好每一个数字i可以...原创 2019-08-02 10:06:57 · 132 阅读 · 0 评论 -
A2. Death Stars (medium) 哈希暴力
题目链接:http://codeforces.com/problemset/problem/958/A2题意: 给你一个n*m s1和m*n s2的二维字符数组,保证m<n,要你找到一个s1的行和s2的列,让这里往右(往下)的m列(行),相同,题目保证一定有解。做法: 基础的哈希题目,把行开始,列部分的数据哈希掉,然后比对就好了,这里要注...原创 2019-06-04 21:20:07 · 272 阅读 · 0 评论 -
hdu 6194 后缀数组+RMQ+lcp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6194题意 给你一个字符串,要你求出这个字符串中正好出现k次的子串的个数有多少个。 花了很长一段时间,因为发现板子好像错了,找了好久的bug,就当现在又更新了一遍板子...做法: 我们要找连续出现k次的,肯定是从sa数组下手,因为sa[i]...原创 2019-03-26 10:18:06 · 222 阅读 · 0 评论 -
CodeForces - 631D KMP
题目链接:http://codeforces.com/contest/631/problem/D题意: 给你两个个块集组成的字符串,字符串中每一块有这个字母的数量和这个字母,第一个是父亲字符串,第二个是儿子字符串,问你儿子字符串和父亲匹配次数的有多少。做法: 和普通的KMP又有点不一样,这里加上了一个数字,在正式匹配之前,当然要先去重,保证每一块...原创 2019-03-21 08:53:19 · 252 阅读 · 0 评论 -
字典树 hdu-4825 Xor Sum 为例
题目链接不发了。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=100005;int trie[maxn*30][2],tot,consi[35];void Insert(){ int rt=0; for(int i=1;i<=32;i++...原创 2018-12-11 13:40:47 · 98 阅读 · 0 评论 -
KMP 模板
#include<bits/stdc++.h>using namespace std;const int maxn=2005;const int mod=(int)1e9+7;typedef long long ll;//KMP匹配得到的next由子串ll ans;void kmp_next(char *str2,int *next){ int i,j; ...原创 2019-03-20 20:13:41 · 100 阅读 · 0 评论 -
POJ 3261 后缀数组板子
题目链接:http://poj.org/problem?id=3261题意: 给你n个数字,要你找出出现超过k次子串的最长长度。做法: 后缀数组的板题吧。因为听说比较常用就先留个板子。东西还是比较好理解的。这个题也不是很难。有比较难的我晚点再理解。 总之就是用一段连续的代码实现了对后缀串的排序。#include<iostre...原创 2018-12-17 21:55:26 · 141 阅读 · 0 评论 -
HDU 3294 - Girls' research 马拉车算法模板
Girls' research Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 4365 Accepted Submission(s): 1633 Problem Description ...原创 2018-08-17 13:36:35 · 195 阅读 · 0 评论 -
HDU 2222-Keywords Search AC自动机模板
Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 77051 Accepted Submission(s): 26679 Problem Description...原创 2018-08-18 18:56:55 · 132 阅读 · 0 评论 -
HDU 6138-Fleet of the Eternal Throne ac自动机
Fleet of the Eternal Throne Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1035 Accepted Submission(s): 480 Problem Descr...原创 2018-08-19 09:44:13 · 199 阅读 · 0 评论 -
E - Slot Machines Gym - 101667I KMP 循环节
因为懒得转word,就直接截图了。。如果有版权什么的请和博主讲一下哈。。我有点方。 题意: 给你n个数,从某一个数开始,就会进入循环,令进入循环前最少要抛弃的数字为p,循环数字的个数为k,求最小的p+k,如果有多个相同的,取k最小的。 求法: 好像用Hash能过,但是小菜鸡目标表示还不会Hash...所以就用了KMP来求,从后向前用KMP(因为是到了后面...原创 2018-08-17 21:53:50 · 262 阅读 · 0 评论 -
hdu- 6625 three arrays 字典树 贪心
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6625题意: 现在你有一个长为n的数组a和数组b,现在要你把两个数组进行重新排序,排序后可以根据两个数组得到一个新的数组c c[i]=a[i]^b[i], 现在请你重排a和b数组,使得得到的这个c的字典序最小,输出c数组。做法: 参考了大神的代码做法,对...原创 2019-08-09 20:31:46 · 318 阅读 · 0 评论