- 博客(4)
- 收藏
- 关注
原创 牛客练习赛 17-B 好位置(KMP)
链接:牛客练习赛 17-B 好位置 思路: 题目的意思就是判断串x是不是s的循环子串;可以用KMP来做,KMP模板就不多说了可以翻我之前写的。 这里s相当于主串,x为模板串,每匹配成功一次就标记一下(pos[i]标记)匹配成功的那段起点(设为1)和终点(设为-1),最后遍历pos数组求前缀和(sum)来判断是否都是好位置。 判断: 代码: #include <iostream> #include <cstring> using namespace std; const int N
2020-07-01 16:45:05 205
原创 字符串匹配——KMP
最大公共前后缀 前缀:必须包含第一个元素但不能包含最后一个; 后缀:必须包含最后一个元素但不能包含第一个; (1)最大公共前后缀:满足前缀和后缀长度相等条件下长度最长的前后缀; (2)next[i]:字符串中以i为结尾的那段所拥有的最大公共前后缀的长度,根据前后缀定义当只有一个元素时next数组值为0; 题目(来自AcWing上的一道KMP模板题) 给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。 模板串P在模式串S中多次作为子串出现。 求出模板串P在模式串S中所有出现
2020-07-01 16:13:22 388
原创 区间加(差分数组)
区间加 链接 思路 分析每个元素与目标值mmm之间的差值,可知相邻的两个元素之间差值不超过1,我们想到用差分数组求解本题; 首先用数组res[i]res[i]res[i] (res[i])=m−res[i](res[i])=m-res[i](res[i])=m−res[i]记录第iii个元素与目标值之间的的差值,然后对相邻数组resresres作差分,记为数组b[i]b[i]b[i](b[i])=...
2020-04-28 23:40:32 685
原创 Alice和Bob赌糖果(概率dp)
Alice和Bob赌糖果(概率dp) 链接:https://ac.nowcoder.com/acm/problem/14962 来源:牛客网 题目描述 Alice和Bob赌糖果。规则是这样的:Alice从[ l, r]中随机抽一个数,Bob从[ L, R]中随机抽一个数,谁抽的数大谁就赢,输的一方给另一方1颗糖(平局不用给糖),他们会一直赌下去直到有一方没有糖果为止。Alice有n颗糖果,Bob有...
2020-04-26 23:40:50 3193 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人