2020.08.05【NOIP提高组】模拟:俄罗斯套娃 总结
Description
Input
Output
Sample Input
10 1000
Sample Output
3628800
Data Constraint
总结
比赛思路: 暴力全排列枚举。
正解: 设
f
i
,
j
f_{i,j}
fi,j表示前
i
i
i个数,逆序对数为
j
j
j的方案数。可得
f
i
,
j
=
∑
l
=
0
i
−
1
f
i
−
1
,
j
−
l
\begin{aligned}f_{i,j}=\sum_{l=0}^{i-1}{f_{i-1,j-l}}\end{aligned}
fi,j=l=0∑i−1fi−1,j−l。时间复杂度为
O
(
n
k
2
)
O(nk^2)
O(nk2)。因为是求一段数的和,可以用前缀和优化至
O
(
n
k
)
O(nk)
O(nk)。注意空间大小,需要用滚动数组。