【做题记录】CF285E Positions in Permutations
-
- 算法:、组合数学、容斥
题目:
称一个 的排列的完美数为有多少个 满足 。
求有多少个长度为 的完美数恰好为 的排列。
题解:
设完美数恰好为 的排列共有 种。
再令 表示强制性放 个满足条件的数,其余的随便放(也就是可能满足也可能不满足)的排列的个数。
所以显然有
又通过二项式反演得
那么对于 求出 即可。
然后我们设计一个感性的 :
因为 只需要强制要求 位,所以我们只需要考虑那 位,其余的乘上 即可(随便放)
考虑这个 。
设 表示到了第 位而此时取了 个完美的位置,选还是不选第 位。
分类。
- 当前为完美位
那么就要有 ,故 只能为 或
- 选择
那么此时必然要保证 位不选
(选择 )
(不选 )
- 选择
同理保证 位不选。而此时 位可以随便选择,所以比起上面的多了一种可能(即选还是不选 位)
(选择 )
(不选择 )
- 当前不为完美位
那么就不能选择 和 位了。
转移很显然了,注意将 改为 (不选 所以还是只选了 个)
(选择 )
(不选 )
然后注意边界:
注意去掉 的可能。
然后再套回去求出 即可。
时间复杂度 。
本文作者:trsins
本文链接:https://www.cnblogs.com/trsins/p/15776619.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
标签:
做题记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步