专栏文章

题解:CF2146F Bubble Sort

CF2146F题解参与者 3已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@minsod14
此快照首次捕获于
2025/12/02 07:43
3 个月前
此快照最后确认于
2025/12/02 07:43
3 个月前
查看原文

F. Bubble Sort

首先,冒泡排序轮数,等价于 maxi=1n{j=1i1[aj>ai]}\max\limits_{i=1}^n\{\sum\limits_{j=1}^{i-1}[a_j\gt a_i]\}
而对于排列,我们有一个很经典的生成双射的方式:枚举插入的位置 xx,然后插入到 xx 位置。显然有 1×2××n1\times 2\times \dots\times n 个选法。
那么这里,等价于一个点插入的时候,身后有几个数。也就是第 ii 项的值域为 [0,i1][0,i-1] 的序列,要求 lkrl\leq k\leq r 个位置满足前缀 max\maxx\leq x 的。
这个限制,我们可以转化成,要求在 ll 时刻的前缀 max\maxx\leq x,然后在 r+1r+1 时刻的前缀 max\max>x\gt x
然后发现,我们可以对限制去 DP,对值域和下标都离散化一下。
转移的系数是形如:『[l,r][l,r] 的数,要求在 [0,i1][0,i-1] 值域并且 k\leq k 的方案数』,这个分类讨论一下是若干个阶乘、阶乘逆元和 xyx^y 乘起来的。
py 被卡常了,但是 wrk 写的过了,我这份看个乐子吧。

评论

2 条评论,欢迎与作者交流。

正在加载评论...