hdoj-2049-不容易系列之(4)——考新郎

http://acm.hdu.edu.cn/showproblem.php?pid=2049

这道题还是错排   但是是n个里面m个的错排  所以要用Cmn处理

 1 #include<stdio.h>
 2 __int64 f(int n,int m)
 3 {
 4     int i;
 5     __int64 s1=1,s2=1;
 6     for(i=1;i<=m;i++)
 7     {
 8         s1*=(n-i+1);
 9         s2*=i;
10     }
11     return s1/s2;
12 }
13 int main()
14 {
15     int k,n,m,i;
16     __int64 a[25]={0,0,1},num;
17     for(i=3;i<=20;i++)
18         a[i]=(i-1)*(a[i-1]+a[i-2]);
19     scanf("%d",&k);
20     while(k--)
21     {
22         scanf("%d%d",&n,&m);
23         num=a[m]*f(n,n-m);
24         printf("%I64d\n",num);
25     }
26     return 0;
27 }

 

posted @ 2013-06-17 09:52  nylg-haozi  阅读(363)  评论(0编辑  收藏  举报