hdu2068 RPG的错排 组合数/递推

 #include<stdio.h>
long long arr[];
long long c(int a,int b)
{
long long i,sum=,j;
for (i=a,j=;i>=a-b+,j<=b;i--,j++) sum=sum*i/j;
return sum;
}
void func()
{
int i;
arr[]=;arr[]=;
for(i=;i<=;i++)
arr[i]=(i-)*(arr[i-]+arr[i-]);
}
int main(){
int n;
while(scanf("%d",&n)!=EOF&&n!=){
int h=n/,i;
long long ans=;
func();
for(i=;i<=h;i++){
ans+=c(n,i)*arr[i];
//printf("%I64d %I64d\n",c(n,i),arr[i]);
} ans++;
printf("%I64d\n",ans);
}
return ;
}
上一篇:那些年的 网络通信之 TCP/IP 传输控制协议 ip 加 端口 ---


下一篇:启动代码之开iCache