首先一个排列是“好”的,当苴仅当:每个数要么是前缀最大值,要么是后缀最小值(讨论i和Pi的关系即可证明)
也就是,排列不能存在>=3的下降子序列!
换句话说假设之前填了i个数,最大值是mx那么第i+1个数,要么是剩下数的最小值要么是比mx大的数。
字典序肯定按位考虑,转化成没有限制的情况
所以先处理没有限制的情况
$f[i][j]$剩下i个数,比之前最大值大的数有j个的方案数
第n-i+1个位置,要么填最小值要么填这j个数之一。
填这j个中第k夶的数(它就成为了新的最大值)就只能剩下j-k个比最大值大的了。
之前比最大值大的数有nw个第i个位置数是ai,