专栏文章
CF1943
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mio0oajh
- 此快照首次捕获于
- 2025/12/02 11:26 3 个月前
- 此快照最后确认于
- 2025/12/02 11:26 3 个月前
CF1943
D
Solution
考虑一个什么样的序列合法,通过观察得到结论:
定义第 位合法为 ,一个序列合法,当且仅当其所有位合法。
必要性是显然的, 最多会被减 ,然后 , 就都变为 ,此时无解。
证明必要性,对于一组符合结论的序列,我们找到第一个 ,再将 的 全部减成 ,这样得到的序列依然符合结论。
这样我们容易设计出 dp。设 为考虑前 位, 的合法方案数,使用前缀和优化即可。
注意, 的合法指的是 位合法,最后得到的答案为 。
时间复杂度 ,可以通过 D1。
尝试优化,由于状态数已经是 ,我们必须精简状态。
设 为考虑前 位, 的合法方案数,转移时枚举第 位和第 位,这样使 位合法的方案数就是固定的。
。
但是这样转移会有个大问题,我们能确保 位合法,但 位可能不合法,因此这样转移不可行。
正难则反,考虑容斥,用前 位合法的方案数减去前 位合法,第 位不合法的方案数。
因为有如下性质:若第 位不合法,则第 位一定合法。
证明:,矛盾。
因此如果反着转移,就可以解决刚才的问题。
使用前缀和优化,时间复杂度 。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...