题意
(m) 个人依次上飞机,飞机上有一行 (n) 个座位。每个人有其进入方向(左->右 右->左)和理想座位 (a_i)。每个人依次进入飞机,走到位置 (a_i);若其已被占据,沿其进入方向继续走直到遇到空位,然后这个人坐下;要是这个人一直找不到空位,他会 be angry。
考虑所有人的所有可能的方向和理想座位(((2n)^m) 种),问其中有多少种能使每个人都不 angry。
(mleq nleq 10^6)
题解
假设我们新增一个座位,并将座位接成一个环,这样每个人都有位置坐,而且每个座位是等价的。若有人坐在新增的座位上,他显然会 be angry。于是答案就是 ((2n+2)^mcdot dfrac{n+1-m}{n+1})
n,m=[int(i) for i in input().split()]
print(pow(2*n+2,m-1,1000000007)*2*(n+1-m)%1000000007)