ARC074 E - RGB Sequence 题解
E:
题意:给长度为n的序列填上RGB三种颜色,要求满足所有条件: 到 之间正好有 种颜色。求方案数。n<=300
发现只有三种颜色,区间颜色数只关心每个颜色最后一次出现的位置,所以一开始我想设 表示考虑了前 i 个位置,R 最后一次在 a,G 最后一次在 b 的方案数。我以为 B 最后一次的位置可以推出来,结果发现是错的推不出来。
另一个我没想到的点是:在考虑前 i 个位置怎么填时,我们不需要关心 r 大于 i 的限制。就算某个情况在前 i 个位置满足,到了右面 r 的位置无法满足了,那也是 处的 dp 值无效,我们可以把它设为0,但是前面的 dp 状态依然认为是有效的。
Solution:
把我前面说的错误状态 改为 ,表示每一种颜色最后一次的位置,这样的话 ,已经更新到的位置 i 也是能表示出来的。
转移方程:
分别表示下一个位置填哪个颜色。通过先枚举 i ,再枚举剩下两个不是 i 的颜色,每一个dp状态只会访问一次,转移是O(n^3)。
之后是限制,对于状态 ,我们可以检验每个 的限制,查看状态的合法性,不合法设成0就行了。思考可知,每个限制最多检验n2个状态,一共n个限制,所以检验也是O(n3)的。
统计答案也很简单。
这种状态里隐含位置 i 的dp题还是挺有趣的。
__EOF__

分类:
ACM
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具