可以先考虑裸的dp方程:
设 dpi,j 表示第 i 个氨基酸为 j 时前 i 个氨基酸的方案数,则 dpi,j=∑kdpi−1,k,其中 k 满足不存在 <k,j> 这个二元组。
滚掉一维:dpi=∑jdpj。
这样复杂度 O(nm),无法通过此题。
发现我们其实可以开一个数组 a,若 ai,j=1 表示 i 后面可以跟 j,那原dp方程可化为:dpi=∑j=1mdpj×aj,i
这样可能还不够明显,我们这么写:dpk,i=∑j=1mdpk,j×aj,i,其中 k=1。
这很显然是一个矩乘的形式,于是最终的dp数组就是 A×an−1,其中 A={1,1,1,…,1}。
复杂度 O(m3logn),足以通过本题。
orz! 写全啊!
催。
看透人生了/kel
F盘有片吗
gzn走好!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库