luogu P3223 [HNOI2012]排队

LINK:排队\

原谅我没学过组合数学 没有高中数学基础水平...

不过凭着隔板法的应用还是可以推出来的。

首先考虑女生 发现一个排列数m! 两个女生不能相邻 那么理论上来说存在无解的情况 而这道题好些没有特意去说明无解输出什么。

这里还是尽量特判一下吧。然后考虑要在m-1个空隙中插入人 人可以是男生或者是老师。这里我们假设老师不区别对待

那么就是 n+2个人 我们先强制插入了m-1个人 剩余n+3-m个人 剩下的人 此时存在m+1个空隙了 隔板法可知此时的方案数为C(n+3-m+m+1-1,m+1-1);

化简为C(n+3,m); 可以发现此时老师和男生的排列可以任意 所以要乘上一个(n+2)!。

我们考虑不合法的方案 两个老师在一起了 把老师当成一个人 单独乘上2! 再按照刚才计算方案的方法计算即可。

第一步的方案数:m!(n+2)!C(n+3,m) 减去第二部的方案数:2!m!(n+1)!C(n+2,m);

可以发现我们已经统计了所有可能发生的情况。

唯一可能发生的情况就是无解。

还有一种思考方式 先考虑女孩 再把男孩插入其中 最后插如老师 老师此时带来的贡献为(n+m+1)*(n+m);

但是这种方法存在漏洞 这样会出现男孩不够m-1时需要老师 而我们老师插入的时候已经默认完全合法了。

当n>=m-1时是可行的 这个方法要特判更多 没有上述方法特判无解来的快。

还有一种解法:先考虑老师 考虑没有限制 n+2个男孩 m个女生 有n+3个空隙可以放女生 此时方案数为C(n+3,m)

总方案为 m!(n+2)!C(n+3,m) 需要减掉的方案和刚才一样 这种是插空法 和我们的隔板法有异曲同工之妙 但是比隔板法要简单。

主要运用的是 找到空隙插入而并非强制让空隙不存在。

两种方法是等效的 我们高兴的是 遇到这种题目 思路不同但是得到的确实相同。

值得注意的是需要使用高精度。

猜你喜欢

转载自www.cnblogs.com/chdy/p/12585287.html
今日推荐