P4071 [SDOI2016] 排列计数
我们先从
先说一个错误的做法:设
其中
我们发现这个是不对的,比如2 1 4 3,
方法1:
正解做法:设
-
放在不是
所在位置的位置,让后把这个位置删掉(因为他已经被填数了,而且这次填数没有任何环构成) -
放在不是
所在位置的位置,并且这个位置的下标的数放在 这个位置(此时构成了一个环)
因此可以得出递推式:
思路总结:对于与环的个数有关的问题,递推式要考虑删掉环上一个没用的点或删掉一个大小为
方法2:
设
可以发现\(f_i = \sum_{j=i}^{n}{\binom{j}{i} \times g_i\),二项式反演(详情见之后写的博客)即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?