StringSequences
题意:
给出两个长度不超过\(50\)的字符串\(S, T\),每次可以在\(S\)中插入一个字符,把每次操作后的\(S\)写成一个序列,问有多少种不同的序列.
注意到我们可以把\(S\)拆分成一段一段原序列/新增序列,我们只需要统计出新增序列对应\(T[l : r]\)的方案数\(g[l, r]\),接下来枚举\(S[i + 1]\)匹配下一个位置\(T[k]\),\(dp[i, j] \rightarrow g[j + 1, k - 1] \times dp[i + 1, k] \times \binom {k - i - 1} {j - i}, S[i + 1] = T[k]\).
我们枚举第一次新增的位置\(k\),\(g[l, r] = \sum_{k} g[l, k - 1] \times g[k + 1, r] \times \binom {r - l} {k - l}\),注意到这样可能会重复,也就是\(T[k] = T[r]\)的情况,不进行这样的转移就好了.因为我们转移的右半区间其实已经包含这种情况了(这步挺厉害的
StringSequences的更多相关文章
随机推荐
- 如何在 WPF 中获取所有已经显式赋过值的依赖项属性
原文:如何在 WPF 中获取所有已经显式赋过值的依赖项属性 获取 WPF 的依赖项属性的值时,会依照优先级去各个级别获取.这样,无论你什么时候去获取依赖项属性,都至少是有一个有效值的.有什么方法可以获 ...
- asp.net core EF code first
以连接mysql数据库为例 一 安装组件 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Relational Microsof ...
- Java字节流文件复制
1.字节流 在 Java 中,文件的复制使用字节输入流和字节输出流实现,java.io 包有 InputStream 和 OutputStream 这两个顶层抽象类规范了读写文件所需的核心 API. ...
- PKCS 标准
PKCS 标准 The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请.证书更新.证书 ...
- 【BZOJ 2351】Matrix(Hash)
题目链接 二维\(Hash\)类似二维前缀和,每一行看成一个\(h\)进制数,每一个以(1,1)为左上角的矩阵看成一个由每一行的\(Hash\)值组成的\(l\)进制数. 然后自己推推柿子就行. #i ...
- 【转载】C#中List集合使用Last方法获取最后一个元素
在C#的List集合操作过程中,如果要获取List集合中的最后一个元素对象,则一般会先通过获取到list集合的个数Count属性,然后再使用索引的方式获取到该集合的最后一个位置的元素信息.其实在Lis ...
- DDL 操作数据库
DDL 操作数据库:常用的操作 CRUD 一.C(create)创建 1.创建数据库 create database 数据库名称; 2.创建数据库,判断是否存在,再创建(如果存在,就不再创建) cre ...
- Vue props用法详解
Vue props用法详解 组件接受的选项之一 props 是 Vue 中非常重要的一个选项.父子组件的关系可以总结为: props down, events up 父组件通过 props 向下传递数 ...
- (比赛)C - 小Q系列故事——最佳裁判(水题)
C - 小Q系列故事——最佳裁判 Time Limit:200MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Des ...
- Oracle 多表插入
多表插入 作用:一条INSERT语句可以完成向多张表的插入任务(Multitable insert).有两种形式:insert all与insert first,准备测试环境:1.创建表T并初始化测试 ...