P3182 [HAOI2016] 放棋子
思路
这道题本质上是一道裸的错排问题。
首先分析一下题目,保证任意两个障碍不在同一行或同一列,那实际上障碍的具体位置就没有任何作用,我们总是可以通过交换行的位置,使第
那就转化成了求
令
时,显然转换成了剩下 个元素的错排。 时,则对这 个元素有 种方法。
又因
然后 c++ 党写高精度就可以了。
代码
python大法好
n=int(input())
ans=[0,0,1]
for i in range(3,n+1):
ans.append((i-1)*(ans[i-1]+ans[i-2]))
print(ans[n])
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器