洛谷P2679 子串
题目链接
算是一个计数类的,首先我们先确定状态数有多少个,一个是字符串现在匹配到了第几位,一个是字符串现在匹配到了第几位,另一个就是我们现在分成了多少组从字符串中挑选出一段子串。这三个状态是最直接的状态,还有另一个就是我们是否要选择当前的字符来进行匹配,这个只有两种可能也就是选或不选两种,我们分别用和来表示选或不选的决策。
对于我们状态转移的过程中只会出现两种可能也就是或者这两种可能。
如果是这种情况。
我们可以选择选当前的位置上的去匹配,也可以不选择,这就又是两种决策了,所以这个状态我们在转移的时候选或不选两种都是要更新的。
如果是选就是
其中dp[i][j][p][1]
表示的是在我们选择用当前的去和匹配并且将放在当前的子串中,dp[i - 1][j - 1][p][1]
表示的是使用匹配前一次的状态并且使用当上一个字符的方案数,dp[i - 1][j - 1][p - 1][1]
表示的是将当前匹配上的字符纳入上一次的子串中,并且使用上一次的字符的方案数,dp[i - 1][j - 1][p - 1][0]
表示的就是使用匹配前一次的状态并且不使用上一次匹配的字符的方案数。
如果不选择当前的字符,那就是
表示的就是没有使用字符,并且串匹配的长度还是的方案数。
如果是这种情况的话
我们只能选择不匹配的情况,转移方程同上。还有就是因为匹配不上所以这一次如果是选的这个字符的话,那么方案数一定是0,所以还有一个赋值的过程
完成上面的操作这个题就完成了
__EOF__

本文作者:HoneyGrey
本文链接:https://www.cnblogs.com/Haven-/p/16220202.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Haven-/p/16220202.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现