HDU2049----不容易系列之(4)——考新郎
2013-08-21 14:56
357 查看
基于HDU2048,用递推公式:a[i]=(i-1)*(a[i-1]+a[i-2]),算出m个人有多少种错排,然后再乘以C(n,n-m),就是总共有多少种错排方法了。
#include <stdio.h>
#define LL __int64
int main()
{
LL t,n,m;
LL i,a[25],b[25];
a[1]=0,a[2]=1,b[1]=1;
for(i=3;i<=20;i++)
a[i]=(i-1)*(a[i-1]+a[i-2]);
for(i=2;i<=20;i++)
b[i]=b[i-1]*i;
scanf("%I64d",&t);
while(t--)
{
scanf("%I64d%I64d",&n,&m);
if(m==n)
printf("%I64d\n",a
);
else
{
LL k=1;
for(i=0;i<n-m;i++)
k*=(n-i);
printf("%I64d\n",a[m]*k/b[n-m]);
}
}
return 0;
}
#include <stdio.h>
#define LL __int64
int main()
{
LL t,n,m;
LL i,a[25],b[25];
a[1]=0,a[2]=1,b[1]=1;
for(i=3;i<=20;i++)
a[i]=(i-1)*(a[i-1]+a[i-2]);
for(i=2;i<=20;i++)
b[i]=b[i-1]*i;
scanf("%I64d",&t);
while(t--)
{
scanf("%I64d%I64d",&n,&m);
if(m==n)
printf("%I64d\n",a
);
else
{
LL k=1;
for(i=0;i<n-m;i++)
k*=(n-i);
printf("%I64d\n",a[m]*k/b[n-m]);
}
}
return 0;
}
相关文章推荐
- HDU2049:不容易系列之(4)——考新郎
- hdu2049 不容易系列之(4)——考新郎
- 不容易系列之(4)——考新郎(hdu2049)(错排)
- 【错排公式】 hdu2049 不容易系列之(4)——考新郎(错排+排列组合)
- hdu2049 不容易系列之(4)——考新郎(全错排,组合数)
- HDU2049:不容易系列之(4)——考新郎
- hdu2049 不容易系列之(4)——考新郎
- hdu2049不容易系列之(4)——考新郎
- HDU2049 不容易系列之(4)——考新郎
- hdu2049不容易系列之(4)——考新郎
- HDU2049 不容易系列之(4)——考新郎
- 不容易系列之(4)——考新郎[HDU2049]
- HDU2049 不容易系列之(4)——考新郎
- HDU2049 不容易系列之(4)——考新郎
- HDU2049_不容易系列之(4)——考新郎
- hdu2049 不容易系列之(4)——考新郎 错排+组合 一共有N对新婚夫妇,N个新娘随机坐成一排,每个新郎只能选一个, 其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能.
- HDU2049 不容易系列之(4)——考新郎
- 不容易系列之(4)——考新郎 hdu2049 递推,错排,组合数
- HDU2049 不容易系列之(4)——考新郎【递推】
- HDU2049 不容易系列之(4)——考新郎