将元素重新排列,询问不出现$y\leq 2x\leq 4y$, $y$=之前最大值。
显排个序,假设确定一个最大元素的时候,$\leq \frac{a_i}{2}$已经可以随便选择了,因为范围$[L,R]$只会往左边移动。
$dp[i]$表示选择$a_i$的方案数。
转移的时候
$dp[i]=\sum dp[j]\times A_{n - 2 - mx[j]}^{mx[i] - mx[j] - 1}$
$mx[i]$表示最大的$j$满足$2\times a[j]\leq a[i]$
思考这个$DP$,当$dp[j]$,有$mx[j]+1$个元素已经排好的时候,将$a_i$放在$a_j$的下一个位置。那么剩下就是$(n-2-mx[j])$个位置,随机放置$mx[i] - mx[j] - 1$。
由于这样$dp$,前缀最大值的顺序是一定,就可以保证不重不漏了。
代码
1 |
|