HDU 2200 Eddy's AC难题
题目地址: 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;}