• [HNOI2012]排队


    题目描述

    某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检。他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不同的)

    输入输出格式

    输入格式:

    只有一行且为用空格隔开的两个非负整数 n 和 m,其含义如上所述。 对于 30%的数据 n<=100,m<=100 对于 100%的数据 n<=2000,m<=2000

    输出格式:

    输出文件 output.txt 仅包含一个非负整数,表示不同的排法个数。注意答案可能很大。

    输入输出样例

    输入样例#1: 复制

    1 1

    输出样例#1: 复制

    12


    排列组合

    首先考虑插板

    先排上n个男生,方案数为(A(n,n))

    这样就形成了(n+1)个空位,所以我们再把老师放进这(n+1)个空位中,方案数为(A(n + 1,2))

    然后再把剩下的(m)个女生放进现在形成的(n+3)个空位中,方案数为(A(n+3,m))

    这时答案就是(A(n,n)*A(n+1,2)*A(n+3,m))

    这样答案就算小了

    因为我们这样只考虑了用男生把老师给分开

    没有考虑用女生把老师个分开

    所以我们还应该考虑用两个老师中间夹着一个女生的情况

    就考虑把任意一个女生跟两个老师捆在一块当成一个往里面放

    所以这时答案就是(A(n,n) * (n + 1) * 2 ‘* m * A(n + 2 , m - 1))

    最后总答案就是(Ans = A(n,n) * A(n+1,2) * A(n+3,m) + A(n,n) * (n+1) * 2 * m * A(n + 2 , m - 1))

    然后这题要高精,就不放代码了==

  • 相关阅读:
    ghost版本xp安装iis的问题
    装vs2005 sp1出现数字签名错误的解决办法
    FLEX对整个截屏或单个UI进行截图
    在Apache环境下成功的运行ASP.NET
    向园子的高手们求救 关于45斜视地图的寻路
    第一次在博客里面写东西
    在 Linux 下运行 ASP.NET 2.0
    sql left join inner jion 区别
    C# 图片识别(支持21种语言)
    5、Java并发编程:Lock
  • 原文地址:https://www.cnblogs.com/beretty/p/10086489.html
Copyright © 2020-2023  润新知