题目大意

  给定一个由且仅由字符'H','T'构成的字符串\(S\)。

​  给定一个最初为空的字符串\(T\) ,每次随机地在\(T\)的末尾添加'H'或者'T'。

  问当\(S\)为\(T\)的后缀时,在末尾添加字符的期望次数。

  对\({10}^9+7\)取模

题解

  设\(f_i\)为从\(i-1\)匹配到\(i\)期望的匹配次数,\(g_i\)表示匹配到\(i\)后下一次失配能匹配到什么位置(用KMP求),\(s_i=\sum_{j=1}^if_j\)

  考虑匹配到第\(i\)位的情况:
\[ f_i=\frac12\times 1+\frac12(1+f_{g_{i-1}+1}+f_{g_{i-1}+2}+\cdots f_{i})\\ f_i=2+s_{i-1}-s_{g_{i-1}} \]
  答案为\(s_n\)

  时间复杂度:\(O(n)\)

代码

转载于:https://www.cnblogs.com/ywwyww/p/8511045.html

【XSY2472】string KMP 期望DP相关推荐

  1. string (KMP+期望DP)

    Time Limit: 1000 ms   Memory Limit: 256 MB Description  给定一个由且仅由字符 'H' , 'T' 构成的字符串$S$. 给定一个最初为空的字符串 ...

  2. ICPC 2005 hangzhou Generator (UVA1358)KMP + 期望DP / 高斯消元

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Generator Weblink https://www.luogu.com.cn/problem/ ...

  3. 【BZOJ3213】抛硬币(ZJOI2013)-期望DP+KMP+高精度

    测试地址:抛硬币 做法:本题需要用到期望DP+KMP+高精度. 很容易想到,先用KMP求出信息,然后从一个点 i i i,要么成功匹配第i+1" role="presentatio ...

  4. 【高斯消元】兼 【期望dp】例题

    [总览] 高斯消元基本思想是将方程式的系数和常数化为矩阵,通过将矩阵通过行变换成为阶梯状(三角形),然后从小往上逐一求解. 如:$3X_1 + 2X_2 + 1X_3 = 3$ $           ...

  5. HDU 4405 概率期望DP

    有 0到 n 个格子.掷骰子走路,求出到终点的数学期望,有飞行的路线. dp[i] 存储在i位置走到终点的期望. 转移方程dp[i]=(dp[i+1] ----> dp[i+6])/6+1; 有 ...

  6. F - Sugoroku2(期望dp)

    F - Sugoroku2 期望dp:fuf_ufu​表示到达终点的期望于是有 fu={0,u≥nf0,u∈Afu+1+⋯+fu+mm+1f_u=\begin{cases} 0,u\ge n \\f_ ...

  7. POJ 2096 Collecting Bugs:期望dp

    题目链接:http://poj.org/problem?id=2096 题意: 有一个程序猿,他每天都会发现一个bug. bug共有n个种类.属于某一个种类的概率为1/n. 有s个子系统,每个bug属 ...

  8. 插头DP 概率DP / 期望DP

    插头DP && 概率DP / 期望DP 写在前面: 插头DP P5056 [模板]插头dp 手写哈希表的方法: 拉链法的代码如下: 开放寻址法的代码如下: 接下来是这道题的代码实现: ...

  9. 东北酱油 模拟赛 期望dp

    自动取款机 [问题描述] 小沈阳在小品里说过:"人生最痛苦的事情是人死了,钱还没花了". 于是小宋(80岁)决定要将所有的储蓄从ATM机中取出花光. 小宋忘记了她有多少存款(银行卡 ...

最新文章

  1. Xdebug的安装-(无错可执行版)
  2. 【Hibernate步步为营】--关联映射之多对一
  3. IsPostBack原理
  4. 剖析Elasticsearch集群系列之一:Elasticsearch的存储模型和读写操作
  5. Spark基础学习笔记10:Scala集成开发环境
  6. CUDA和LAPACK混编的MakeFile文件
  7. pandas read_sql
  8. 计算机语言em,Python:EM(期望极大算法)实战
  9. DIY LDAC蓝牙接收器(二)硬件调试篇
  10. 如何将App程序发布到苹果App Store
  11. Matlab信道容量的迭代计算实验
  12. 志愿者招募| WasmEdge 邀你参加第七届中国开源年会 COSCon 2022
  13. 浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解
  14. Python 实现office单个文件或整个文件夹(word,ppt,excel)转换成PDF文件,并获取PDF文件页数
  15. 《Android开发卷——实时监听文本框输入》
  16. 本地登录切断远程连接的简单方法
  17. 区块链基础(简单学习)
  18. Ubuntu12.04搭建BigBlueButton
  19. 傻白探索Chiplet,一些相关术语和问题记录(二)
  20. html毕业论文的摘要,*毕业论文摘要怎么写 *毕业论文摘要范文参考

热门文章

  1. Java 并发---ConcurrentHashMap
  2. 【HTTP 2】简介(Introduction)
  3. SQL Server 2005参考:Apply运算符
  4. 系统带你学习 WebAPIs 第一讲
  5. JS对象与jQuery对象
  6. java.util.prefs.Preferences
  7. javascript --- event loop
  8. javascript --- Sortable一个拖拽的接口
  9. Centos7 更新pip和scipy
  10. No resource found that matches the given name 'android:Widget.Material.A解决方案