2021牛客暑期多校训练营5 D.Double Strings (dp,组合数学)

Double Strings

https://ac.nowcoder.com/acm/contest/11256/D

Description

难以描述,看图:
图片说明

Solution

简单的来说就是

  • 区间里找一个公共子序列
  • 这个点
  • 后面的可以任意取

方案统计

对于公共子序列部分,显然对于公共子序列可以做一次 统计方案数, 令 表示 串遍历到 串遍历到 时有多少个公共子序列,类似于最长公共子序列那样去做就行了。
对于后面部分可以 任意取,假设当前 串剩下 个字母可以取, 串剩下 个字母可以取,显然方案数是
对于上式(1)有结论

结论证明(摘自百度):

等式右边等价于:从 个不同的球中任意取出 个球,一共有的方法数。
等式左边 等价于:把个不同的球分成两块,从 个球中选出 个球来,从 个球中选出 个球来,由于从 两块中取的球数总是 个,每种方法加起来一定等于从 个球中取 个球的方法数。

于是考虑枚举 中的两个端点,对于前后的方案数做乘法就可以了,比赛的时候想打 的表 ,发现超内存了,索性打到 ,超出范围的卢卡斯暴力算,卡过去了(1950ms,250MB),正确的做法应该是先预处理出逆元?

Code

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=48362485

一些比赛的题解 文章被收录于专栏

一些比赛的题解

全部评论

相关推荐

有趣的牛油果开挂了:最近这个阶段收到些杂七杂八的短信是真的烦
点赞 评论 收藏
分享
一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
8 收藏 评论
分享
牛客网
牛客企业服务