构造 + 概率的计算.
飞机上有 $n$ 个位置,有 $m$ 个乘客入座,每个乘客有一张票 $(x\in [1,n]\cup {\mathbb N_+},dir\in \lbrace 0,1\rbrace)$ .
每个乘客依次进入飞机,先走到位置 $x$ ,若 $dir =0$ ,则向前走,直到找到一个空位并坐下.
若 $dir = 1$ ,则向后走,直到找到一个空位并坐下.
若每个乘客都能找到一个空位,则是合法的情况,问有多少种情况是合法的,答案对 $10^9+7$ 取模.
$1\le m\le n\le 10^6$ ,两种情况不同当且仅当存在一个乘客,他在两种情况中拥有的票不一样.
考虑新加入一个特殊位置 $n+1$ ,若有乘客走到这里坐下,说明不合法.
然后就可以将序列变成一个环.每个乘客在环上选一个位置和一个方向出发,直到找到空位并坐下.
可以发现如果我们允许乘客从 $n+1$ 出发,合法方案数也不会变,但可以使得每个位置都等价.
乘客共选了 $m$ 个位置, 位置 $n+1$ 没有被选的概率为 $\frac{n+1-m}{n+1}$ ,再乘上总方案数 $(2n+2)^m$ 即为合法方案数.
1 | //%std |