题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=2200
从中选出m个人,m至少大于等于2
有C(m,n)*(m-1)
不难推出公式:
f(n)=C(2,n)+C(3,n)*2+……+C(k,n)*(k-1)+……C(n,n)*(n-1);
化简为(n-2)*2^(n-1)+1
代码如下:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <queue>
using namespace std;
/*
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
*/
int main()
{
__int64 xh,n;
while(scanf("%I64d",&n)!=EOF)
{
xh=(n-2)*(1<<(n-1))+1;
printf("%I64d\n",xh);
}
return 520;
}