ARC059F

首先不难发现,字符串具体是啥对答案没有影响。

于是有两种做法,第一种我个人认为更好理解,就是由于长度相同的字符串,用相同操作次数产生它们的方案数是一样的,则设计 f(i,j) 表示用 i 次操作产生长度为 j 的字符串的方案数,则有

  • 加入 0/1f(i+1,j+1)f(i+1,j+1)+2×f(i,j)
  • 退格,f(i+1,max(j1,0))f(i+1,max(j1,0))+f(i,j)

最后答案是 f(n,m)2m,其中 m 表示字符串的长度。

Code

然后有做法二,设计 f(i,j) 表示用 i 次操作与字符串的前 j 位匹配上的方案数,则有

  • 退格,但是当前串为空,f(i+1,j)f(i+1,j)+f(i,j),j=0
  • 退格,当前串不为空,f(i+1,j1)f(i+1,j1)+2×f(i,j),j0
  • 加入 0/1,钦定它与字符串的第 j+1 位匹配上,f(i+1,j+1)f(i+1,j+1)+f(i,j)

最终答案就是 f(n,m)

Code

posted @   Kobe303  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示