hdu 2200

说起来真惭愧,这题刚开始看没什么思路,然后也没怎么仔细想就直接看别人思路了。

思路是这样的:在n个人中找m个人,然后就变成了插板问题。

代码如下:

#include"stdio.h"



__int64 cal(__int64 m,__int64 n)

{

    __int64 s=1,i;

    for(i=1;i<=m;i++)

        s=s*(n-i+1)/i;

    return s;

}





int main( )

{

    __int64 n,sum,i;

    while(~scanf("%I64d",&n))

    {

        sum=0;

        for(i=2;i<=n;i++)

            sum+=(i-1)*cal(i,n);

        printf("%I64d\n",sum);

    }

    return 0;

}

你可能感兴趣的:(HDU)