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


    1401: 不容易系列之(4)——考新郎 分享至QQ空间 去爱问答提问或回答

    时间限制(普通/Java):1000MS/10000MS       内存限制:65536KByte 总提交: 512            测试通过:175

    描述

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

    输入

    输入数据的第一行是一个整数C,表示测试实例的个数,然后是C行数据,每行包含两个整数N和M(1<M<=N<=20)。

    输出

    对于每个测试实例,请输出一共有多少种发生这种情况的可能,每个实例的输出占一行。

    样例输入

    2 2 2 3 2

    样例输出

    1 3

    题目来源

    HDOJ

     
    分析: 从n中选出m个进行错排。
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 using namespace std;
     6 
     7 int main()  
     8 {
     9     int t;
    10     int n,m,i;
    11     __int64 f[21],sum,temp,a;
    12     f[1]=0,f[2]=1;
    13     for(i=3; i<21; i++)
    14         f[i]=(i-1)*(f[i-1]+f[i-2]);
    15     cin>>t;
    16     while(t--)
    17     {
    18         cin>>n>>m;
    19         sum=temp=1;
    20         for(i=1;i<=m;i++)
    21         {
    22             sum*=n;
    23             n--;
    24             temp*=i;
    25         }
    26         a=sum/temp*f[m];
    27         printf("%I64d
    ",a);
    28     }
    29     return 0;
    30 }
  • 相关阅读:
    <a>與<link>的區別
    103_linux如何安装mysql数据库?
    102_Centos7在虚拟机上开机时出现黑屏,怎么解决?
    101_war和war exploded的区别
    100_linux中passwd文件的用户解析
    099_linux基础命令三
    098_linux基本操作命令二
    097_linux如何配置jdk路径
    096_如何将linux的IP地址转换成静态ip地址?
    078_ip地址.DNS,子网掩码,网关分别是什么,又有什么作用?
  • 原文地址:https://www.cnblogs.com/aimqqroad-13/p/4443151.html
Copyright © 2020-2023  润新知