[ABC262Ex] Max Limited Sequence

先考虑两个包含的区间能否转化,发现并不可以。

有一个显然的想法是我们可以暴力求出每个位置的上界 \(up_i\)

现在问题变成 \(v_i \leq mx_i\),同时要求 \(\forall i \in[1,Q],\exist j\in[L_i,R_i] ,v_j=x_i\)

这个问题好像不是很好做,我想了一个 dp 貌似假了。

考虑到每个 \(x\) 的限制是相对而言独立的,也就是说,我们把限制拆分成若干组,每一组以 \(x\) 分类,原问题等价于满足这些独立的限制。

现在问题变成给若干个区间,每个位置值是 \(0/1\),然后要求区间内至少一个 \(1\),这个时候可以令区间互不包含。

这个你考虑记 \(dp_i\) 表示考虑所有 \(R_j \leq i\) 的限制,强制令 \(v_i\)\(1\) 的方案数,记 \(mx_i=\max_{r_j=i}(l_j)\),有 \(dp_i=\sum_{j=mx_{i-1}}^{i-1}dp_j\),可以使用前缀和优化。

posted @ 2023-02-21 16:53  PYD1  阅读(28)  评论(0)    收藏  举报