最开始观察没看出什么东西来,于是看,由于统计的是不同的的数量,所以考虑一个可以由什么搞出来,然后就不难发现如果我们将分段(相同的数放一段),那么对应的在同一段就会从开始增加,然后到达一个峰值之后再减小到(开头和结尾的两段只有减少或增加)
此时我在赛时搞出来一个模型:在中放若干个,满足的个数减去的段数(连续的为一段)加上一不小于,而且每一段至少有两个;不难知道这是正确的,但是太难计数了
我们最开始以为观察对象不行,现在换成了有一点点曙光,但是发现还是太难计数,这个时候就要重新去观察,就将分段,于是可以发现,对于来说,不同的分段对应不同的(也就是说这是单射),然后就可以DP计数了
但是到却不是单射。比如和对应的都相同,但是前者分了三段,后者分了四段,这会导致重复计数
然而,这种情况只有可能在中间发生,于是我们DP计数的时候排除这种特殊情况就好了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构