BZOJ2732/HNOI2012/排队

Posted on By 二价氢

#题目描述

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

#做法

裸数学题

考虑以下两种情况

  1. 老师连在一起,那么老师间有一个妹子,\(Answer=(N+1)!\times A(N+2,M-1) \times 2m\)
  2. 老师不连一起,那么\(Answer=A(N+1,2)\times A(N+3,M)\)

所以最终的答案就是\((N+1)!\times A(N+2,M-1) \times 2m + A(N+1,2)\times A(N+3,M)\)

#复杂度分析

求\(N!\)的时间复杂度为\(O(N)\),由于需要高精度,实际复杂度为\(O(N \log N)\)