题目链接:信封问题 - 洛谷
题目难度:普及-
涉及知识点:错排
题意:
分析:直接用错排公式代入即可
AC代码+推理公式:
#include<bits/stdc++.h>
using namespace std;
long long f[25];
int main()//用函数会超时
{f[1]=0;//3种特殊情况,递推的基础f[2]=1;f[3]=2;for(int i=4;i<=20;i++)//前三种定义过了,所以从4开始f[i]=(i-1)*(f[i-2]+f[i-1]);/*递推错排公式,n固定后有n-1种元素要排列,为(n-1),对任意元素i来说,第一种:位置并未与n所在位置一样,n固定了,有f(n-1)种排列方法,第二种情况,位置与n互换,两个元素位置固定,有f(n-2)种排列方式,方案可能乘在一起,==此公式*/int a;ios::sync_with_stdio(false);//加快cin,coutcin>>a;cout<<f[a];return 0;
}
总结:直接用错排公式代入即可