• HDU_2049——部分错位排列,概率论


    Problem Description
    国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的:
    首先,给每位新娘打扮得几乎一模一样,并盖上大大的红盖头随机坐成一排; 然后,让各位新郎寻找自己的新娘.每人只准找一个,并且不允许多人找一个. 最后,揭开盖头,如果找错了对象就要当众跪搓衣板...
    看来做新郎也不是容易的事情...
    假设一共有N对新婚夫妇,其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能.
     
    Input
    输入数据的第一行是一个整数C,表示测试实例的个数,然后是C行数据,每行包含两个整数N和M(1<M<=N<=20)。
     
    Output
    对于每个测试实例,请输出一共有多少种发生这种情况的可能,每个实例的输出占一行。
     
    Sample Input
    2 2 2 3 2
     
    Sample Output
    1 3
     1 #include <cstdio>
     2 int main()
     3 {
     4     int c, n, m;
     5     __int64 ans[21]={0,0,1,2}, s1, s2;
     6     for(int i=4;i<21;i++)
     7         {
     8             ans[i]=(i-1)*(ans[i-1]+ans[i-2]);
     9         }
    10     scanf("%d",&c);
    11     while(c--)
    12         {
    13             scanf("%d%d",&n,&m);
    14             s1=s2=1;
    15             for(int i=n, j=m;j>0;i--, j--)
    16                 {
    17                     s1=s1*i;
    18                     s2=s2*j;
    19                 }
    20             //对m使用全错位排列公式
    21             //然后乘上nCm的简化形式 
    22             //ans[m]*s1会越界 
    23             printf("%I64d
    ",ans[m]*(s1/s2));
    24         }
    25     return 0;    
    26 }
    ——现在的努力是为了小时候吹过的牛B!!
  • 相关阅读:
    RSA签名算法概述及使用
    PyQt5【入门-窗口】
    CSS的一些文本操作有哪些
    Canvas如何绘制精美的图?
    Python学习路线
    表单都应该提交点什么
    网页的图像、表格以及列表的使用和制作
    网页的头部都装点什么
    HTML5,从零开始
    Redis的安装以及spring整合Redis时出现Could not get a resource from the pool
  • 原文地址:https://www.cnblogs.com/pingge/p/3182836.html
Copyright © 2020-2023  润新知