【题解】[Codeforces 838D] Airplane Arrangements【人类智慧 结论题】

题目链接

题意

\(m\) 个人依次上飞机,飞机上有一行 \(n\) 个座位。每个人有其进入方向(左->右 右->左)和理想座位 \(a_i\)。每个人依次进入飞机,走到位置 \(a_i\);若其已被占据,沿其进入方向继续走直到遇到空位,然后这个人坐下;要是这个人一直找不到空位,他会 be angry。

考虑所有人的所有可能的方向和理想座位(\((2n)^m\) 种),问其中有多少种能使每个人都不 angry。

\(m\leq n\leq 10^6\)

题解

假设我们新增一个座位,并将座位接成一个环,这样每个人都有位置坐,而且每个座位是等价的。若有人坐在新增的座位上,他显然会 be angry。于是答案就是 \((2n+2)^m\cdot \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)

posted @ 2020-12-31 09:56  破壁人五号  阅读(124)  评论(0编辑  收藏  举报