地址:
题意:中文。
mark:如果知道错排公式就很简单了。
wa了一次。。。<=写成了<。。。PE一次。莫名其妙多加了个空格。sb了。
代码:
# includelong long c[30][30] = { 1} ; long long cp[15] = { 0, 0, 1} ; void init() { int i, j ; for (i = 1 ; i <= 25 ; i++) { c[i][0] = 1 ; for (j = 1 ; j <= i ; j++) c[i][j] = c[i-1][j] + c[i-1][j-1] ; } for (i = 3 ; i <= 12 ; i++) cp[i] = (i-1) * (cp[i-1] + cp[i-2]) ; } int main () { int i, n ; long long ans ; init() ; while (~scanf ("%d", &n), n) { ans = 1 ; for (i = 2 ; i <= n/2 ; i++) ans += c[n][i] * cp[i] ; printf ("%I64d\n", ans) ; } return 0 ; }