专栏文章
题解:AT_abc431_f [ABC431F] Almost Sorted 2
AT_abc431_f题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @min9y7dx
- 此快照首次捕获于
- 2025/12/01 22:58 3 个月前
- 此快照最后确认于
- 2025/12/01 22:58 3 个月前
比较巧妙的数数题。
思路
一般的有限制类数列计数都是从两种方向考虑,一种是从左往右逐一确定值,另一种是从小到大逐一确定位置。对于这道题来说,我们考虑第二种计数方式。
先假设 中元素没有重复的,并令其递增。设 表示将 的前 小重排后得到的满足条件的数列有多少个。考虑把 插入长为 的满足条件的数列中。显然如果长为 的数列不满足条件,则插入一个数一定不会使其变得满足条件,此时我们再来看一看限制:
由于排序后 肯定大于所有前面的数,所以我们不需要考虑 前面放的什么,只需要考虑 后面放的什么。显然能够放在 后面的数一定 ,或者干脆把 放到最后,于是我们双指针一下找到 前面有多少个这样的数,记为 ,则有:
最后考虑去重,显然我们的算法区分了不同位置上的相同的数,对于一个出现了 次的数,我们对答案乘上 就结了。
时间复杂度 。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...