一道比较不错的 DP。
设 fi 表示当前字符串长为 i 时的最小代价,发现这道题麻烦的地方在于 fi 可以从 fi+1 的地方转移过来。
分类讨论一下:
i 为偶数:
i 为偶数时 fi 能从 fi−1,fi2,fi+1 三个点转移过来,但是 fi+1 的转移路程是 ?→fi+22→fi+2→fi+1→fi
,总代价是 y+2x,这显然不如 ?→fi+22→fi2→fi 更优,总代价是 y+x。
所以 i 为偶数的转移方程是 fi=min{fi−1+x,fi2+y}。
i 为奇数:
i 为奇数时 fi 能从 fi−1,fi+1 转移过来,接下来讨论 fi+1 的转移思路。
显然 fi+1 不能从 fi 转移,于是只能从 fi+2,fi+12 转移,发现 fi+2 又是个奇数,因此如果从 fi+2 转移的话路径只能是这样:
?→fi+12→fi+32→fi+3→fi+2→fi+1→fi
总代价是 4x+y,显然不如从 fi+1 的转移路径 ?→fi+12→fi+1→fi,总代价是 y+x。
所以 i 为奇数的转移方程是 fi=min{fi−1+x,fi+12+x+y}。
所以最后的方程就是上面两个式子综合一下就好了。
Code:GitHub CodeBase-of-Plozia CF710E Generate a String.cpp
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具