专栏文章
题解:CF2066D2 Club of Young Aircraft Builders (hard version)
CF2066D2题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minih2q5
- 此快照首次捕获于
- 2025/12/02 02:57 3 个月前
- 此快照最后确认于
- 2025/12/02 02:57 3 个月前
题解
对于计数题考虑找充要条件。考虑一个数字能填需要满足其前面还没有 个数大于它,注意这个限制是后缀的,所以我们考虑值域的前缀。对于 1 我们只能放在 ,以此类推,我们能够得到 能够放置的区间 ,其中 是 的数量。于是我们可以对其考虑 dp,设 表示考虑到 填了 个数的方案数。转移考虑枚举 放了多少个,设为 ,其上界是 。此时我们能够知道 填数范围是 ,首先我们需要判断这个上界是否合法,因为可能存在已经给出的 的最右边不在区间内的情况。判断转移合法性之后就简单了,现在只需考虑填数的方案数即可。因为之前已经有 个数,于是还剩下 个空位,但是考虑到原来的序列本身还有一些数已经确定,于是还要减去这段前缀区间内 的数的个数,设为 。考虑我们需要将 个 放进去,但是可能原来序列中也有一些 了,其数量设为 ,那么我们的方案数就是 。于是最后的 dp 式子就是:
时间复杂度 。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...