Qoj 17640. 上升

link

这个题,是类似于欧拉数的一类问题,需要统计某些上升权值。

容斥似乎不太好做?

尝试从前往后做,每次插入一个数,只记录相对大小。\(f_{i,x}\) 表示当前填到第 \(i\) 个数,且最后一个数在其中是第 \(x\) 大。

发现有一些位置是确定的数。考虑当我们扫描到某个确定的数 \(a_i\),就把 \(\leq a_i\) 的值固定下来。在转移上相当于乘上一个组合数。

这样我们相当于,每次转移要么在 \(<last\) 的空位里面填一个数,要么在 \(>last\) 的数之间插入一个数。

所以可以维护:\(f_{i,cnt,x}\) 表示当前 \(<last\)\(cnt\) 个空位,上一个填的数为第 \(x\) 大。

由于所有给出的数递增,且这样做不会钦定 \(>last\) 的值,所以可以转移。

可以做到 \(O(n^3)\)

posted @ 2026-05-12 16:14  _Bonely_Muffin  阅读(16)  评论(0)    收藏  举报