首页 > 其他分享 >P2679 [NOIP2015 提高组] 子串

P2679 [NOIP2015 提高组] 子串

时间:2023-09-17 13:45:03浏览次数:37  
标签:子串 NOIP2015 中前 P2679 不取 个字符

注意 \(A\) 中取相同位置子串划分方式不同也算作不同的方案。

令 \(f_{i,j,l,0/1}\) 表示 \(A\) 中前 \(i\) 个字符,取出 \(l\) 个子串,拼成了 \(B\) 中前 \(j\) 个字符,第 \(i\) 个字符取/不取的方案数。

不取直接累加 \(A\) 中上一个字符的状态:

\[f_{i,j,l,0}=f_{i-1,j,l,0}+f_{i-1,j,l,1} \]

取就分接在上一个子串后面和新开一个子串两种情况讨论:

\[f_{i,j,1}=f_{i-1,j-1,l,1}+f_{i-1,j-1,l-1,0}+f_{i-1,j-1,l-1,1} \]

然后这题就做完了,记得滚动数组、取模和初始化。

标签:子串,NOIP2015,中前,P2679,不取,个字符
From: https://www.cnblogs.com/landsol/p/17708383.html

相关文章

  • P2669 [NOIP2015 普及组] 金币
    题目背景NOIP2015普及组T1题目描述国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连......
  • 最长回文子串
    给你一个字符串 s,找到 s 中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。示例2:输入:s="cbbd"输出:"bb" classSolution{public:stringlongestPalindrome(strings......
  • 查找字符串最长公共子串,请编码实现一个命令行工具,找出指定的2个字符串的最长公共子串
    要求给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1。输入描述命令行工具接收两个字符串参数。输入字符串的合法字符集为[a-zA-Z0-9],大小写敏感,无需考虑异常输入场景。输出描述输出一行最长公共子串示例输入1ABCD2345G12345EF输出2345解法一:滑......
  • NOIP2015提高组复赛day1解析
    1. 解析:送分题,按题意模拟即可代码:#include<bits/stdc++.h>#definelllonglong#definexfirst#defineysecondusingnamespacestd;constintN=39+7;inta[N][N],n;map<int,pair<int,int>>mp;intmain(){ freopen("magic.in","r&......
  • JavaScript用indexOf()在字符串数组中查找子串时需要注意的一个地方
    一、遇到问题在 继续更新完善:C++结构体代码转MASM32代码 中,由于结构体成员中可能为数组类型的情况,因此我们在提取结构体成员信息的过程中,需要检测结构体成员名称字符串中是否包括[],如果包括那么我们要截取'['前面的内容作为成员名称。在用字符串的indexOf()方法检测和定位'['......
  • 刷题[Leetcode]3. 无重复字符的最长子串
    3. 无重复字符的最长子串classSolution{public:  intlengthOfLongestSubstring(strings){    if(s.size()==0)return0;    unordered_set<int>unset;    intmaxLen=0;    intleft=0;    for(intright=......
  • 长回文子串-动态规划解法
    题目:​给你一个字符串s,找到s中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。​Golang代码示例​​逻辑视频讲解funclongestPalindrome(sstring)string{ /......
  • 【学习笔记】Manacher(马拉车)求回文子串
    点击查看目录目录参考资料与图片来源算法思路具体实现例题解题参考资料与图片来源参考博客我觉得这个博客讲的不好,他只讲看规律得到的结论,原因却不说,怪。参考博客2oi-wiki算法思路对于长度可能为奇可能为偶的情况,首先要预处理字符串,在每个字符左右增加一个无关字符#。......
  • [刷题笔记] Luogu P2679 [NOIP2015 提高组] 子串
    ProblemDescription我们可以换个思路。从字符串\(A\)中拿出\(k\)个字串使其变成\(B\)。求有几种不同的方案?Analysis我们发现\(A\)中的一个字符取或者不取影响后面的决策,这并不代表它一定有后效性,我们可以记录这一层状态。和最长公共子序列同理,定义\(f_{i,j,k,l}(\fo......
  • python判断字符串是否包含子串的五种方法
    python判断字符串是否包含子串的五种方法一、用find()方法判断要判断某一个字符串是否包含某一个子串,方法之一是可以利用python内置的字符串方法find()来查找,如果查找到,就返回子串第一个字符在原字符串中的索引位置,如果找不到,则返回-1,实例代码如下:>>>string='笨鸟工具,x1y1z1......