hdoj 2049 错排

代码:

#include <stdio.h>

int main()
{
 int n,a,b,i,j;
 __int64 s[22],h[22];
 s[1]=0;
 s[2]=1;
 s[3]=2;
 for(i=4;i<21;i++)
 {
  s[i]=(i-1)*(s[i-1]+s[i-2]);
 }
    scanf("%d",&n);
 while(n--)
 {
    scanf("%d%d",&a,&b);
    h[0]=1;
     for(j=1;j<22;j++){
    h[j]=j*h[j-1];
     }
       printf("%I64d\n",h[a]/(h[a-b]*h[b])*s[b]);
 }
 return 0;
}

C(a,b)*s[b]即可

时间: 2024-10-12 22:56:03

hdoj 2049 错排的相关文章

杭电2049错排

1 #include<stdio.h> 2 int c(int n,int m) 3 { 4 if(m==0||n==m) 5 return 1; 6 else 7 return c(n-1,m)+c(n-1,m-1); 8 } 9 10 int main() 11 { 12 int t,i,n,m; 13 __int64 p[50]; 14 p[1]=0;p[2]=1; 15 for(i=3;i<21;i++) 16 p[i]=(i-1)*(p[i-2]+p[i-1]); 17 sca

[ACM] hdu 2049 不容易系列之(4)——考新郎 (组合+错排)

国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的: 首先,给每位新娘打扮得几乎一模一样,并盖上大大的红盖头随机坐成一排; 然后,让各位新郎寻找自己的新娘.每人只准找一个,并且不允许多人找一个. 最后,揭开盖头,如果找错了对象就要当众跪搓衣板... 看来做新郎也不是容易的事情... 假设一共有N对新婚夫妇,其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能. Input 输入数据的第一行是

HDU 2049 不容易系列之(4)——考新郎(错排+组合数学)

不容易系列之(4)--考新郎 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 31217    Accepted Submission(s): 11338 Problem Description 国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操

hdoj 2048 神、上帝以及老天爷(递推,全错排)

神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 32717    Accepted Submission(s): 13379 Problem Description HDU 2006'10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面.奖品丰厚的抽奖活动,这个活动的具体要求是这

23-新娘匹配(错排问题)

/*   错排问题: 问题: 十本不同的书放在书架上.现重新摆放,使每本书都不在原来放的位置.有几种摆法?这个问题推广一下,就是错排问题,是组合数学中的问题之一.考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排. n个元素的错排数记为D(n). 研究一个排列错排个数的问题,叫做错排问题或称为更列问题.错排问题最早被尼古拉·伯努利和欧拉研究,因此历史上也称为伯努利-欧拉的装错信封的问题.这个问题有许多具体的版本,如在写信时将n封信装到n个

错排——不容易系列之(4)——考新郎

1401: 不容易系列之(4)——考新郎 时间限制(普通/Java):1000MS/10000MS       内存限制:65536KByte 总提交: 512            测试通过:175 描述 七夕节那天,临海江南古长城刚刚举行了一场盛大的集体婚礼,以长城为证,撒播爱情的芬芳.为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的: 首先,给每位新娘打扮得几乎一模一样,并盖上大大的红盖头随机坐成一排; 然后,让各位新郎寻找自己的新娘

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

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049 Problem Description 国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的: 首先,给每位新娘打扮得几乎一模一样,并盖上大大的红盖头随机坐成一排; 然后,让各位新郎寻找自己的新娘.每人只准找一个,并且不允许多人找一个. 最后,揭开盖头,如果找错了对象就要当众跪搓衣板... 看来

hdu2068-RPG的错排-(dp递推式)

去年看错排公式,死都看不懂,基础扎实之后再来看就略懂了. 公式: dp[ n ] = ( n-1 ) * ( dp[n-1] + dp[n-2] ) 解析公式:比如有n个元素,各对应n个正确位置,dp[n]表示这n个元素全部排错的可能. 比如有元素:1 2 3 4 5 ... k ... n 1.假设第n个元素,要它在错误的位置上,则有n-1种情况. 2.对于剩下的n-1个元素,随便取一个位置上的元素k,要它在错误的位置上,则有2种情况 1)它在第n个元素的位置,相当于n和k两个元素交换位置,和

BZOJ 4517: [Sdoi2016]排列计数 错排+逆元

4517: [Sdoi2016]排列计数 Description 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m 个数是稳定的 满足条件的序列可能很多,序列数对 10^9+7 取模. Input 第一行一个数 T,表示有 T 组数据. 接下来 T 行,每行两个整数 n.m. T=500000,n≤1000000,m≤1000000 Output 输出 T 行,每行一个数,表示