https://vjudge.net/contest/205698#problem/O
题解:首先定义一个数组f[21],f[n]表示n个人抽不到奖的情况总数。
1.若第i个人放在第j(j!=i)个位置上,则有n-1种放法。
2.然后考虑第j个人分两种情况,当第j个人放在第i个位置时有f[n-2]种放法,第j个人不放在第i个位置有f[n-1]种放法。
其中f[1]=0,f[2]=1;便可得到以下的递推式。
分析可知f[n]=(n-1)*(f[n-1]+f[n-2]);
注意:必须定义 long long f[21]否则会导致数据溢出错误。
O - 神、上帝以及老天爷
最新推荐文章于 2024-04-21 12:28:55 发布