P3223 [HNOI2012] 排队
idea:
比较简单的排列组合,比较不恶心但还是恶心的高精度。
解决方案:
按照套路,容斥一下,先不考虑老师。此时老师与男同学等价。答案为:
Cn+2+1m⋅(n+2)!⋅m!=(n+3−m)!(n+3)!⋅(n+2)!
这一部分可以 O((m+n)⋅k) 求出。 k 为高精乘单精复杂度。
下面把两个老师粘在一起。答案为:
Cn+1+1m⋅Cn+11⋅n!⋅m!⋅2=(n+2−m)!(n+2)!⋅(n+1)!⋅2
这一部分复杂度仍然是 O((m+n)⋅k) 。
总复杂度 O((m+n)⋅k) 。只需要高精乘以单精以及高精减两个操作。