<学习笔记> 关于错排列

1

是做排列计数的时候了解到这个东西:

一开始想的是用容斥原理,先加上全排列,再减去不满足的,再加上重复的,再减去不满足的......

后来发现还涉及到杨辉三角,麻烦死了,时空复杂度也过不去,然后就知道了错排列

2

错排列基本要求是将1n这些数分别放在n个位置上,且位置编号不能与所放的数相同

是排列组合的一个变种,计算的时候采用加法原理。

3

考虑第i个点与第n个点的联系。

如果n放在i的位置上,那么我们初始把i也放在n的位置上。

假如i就在n的位置上,那么错排列数就等于n2个点的错排列数。

假如i不在n的位置上,此时对于除n外的n1个点来说,in是等价的,错排数为n1个点的错排数。

同时i与其他点的情况就在第二种情况中考虑了。

因为in1个,所以相加再乘(n1)

那么设d[n]表示n个点的错排数,则有:

d[n]=(n1)(d[n1]+d[n2])

posted @   curly_6  阅读(105)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示