题意: m个人要考试,老师将他们安排在一张有n把椅子的圆桌上,任意两人之间至少隔着k把椅子,问方案数 %(1e9+7) .
思路:
1.
保证n>=m∗(k+1)
.
2.固定第一个人的位置,这样固定的方法就有
n
种,先在两人之间放k把椅子,那么剩下
3.剩下的椅子要放在任意两人之间,这样就是一个经典模型:小球不区分,盒子区分,盒子可为空.即
(m−1n−m⋅k−1)
4.固定第一人的方法有
n
种,并且每个位置轮流会有重复,所以需要除以
n⋅(m−1n−m⋅k−1)mmod(1e9+7)
5.显然这是个大组合数,Lucas定理套一下,
注意:需要特判
m==1
的情况,即使一个人,可在
n
位置上任意选,答案即为
代码链接:https://github.com/PhyCoe/ACM-Training/blob/master/Code/hdu5894.cpp