专栏文章

题解:CF1699C The Third Problem

CF1699C题解参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@miqzwnw1
此快照首次捕获于
2025/12/04 13:28
3 个月前
此快照最后确认于
2025/12/04 13:28
3 个月前
查看原文
似乎没有题解写过这种做法。
首先对于排列,我们有一个性质:mexi=1xpi=mini=x+1npi\text{mex}_{i=1}^x p_i=\min_{i=x+1}^n p_i
考虑这个性质有什么用,发现它可以锁定所有前缀最小值 preipre_i,后缀最小值 sucisuc_i,即问题转化为:给定所有 prei,sucipre_i,suc_i,求有多少个合法的排列。
显然我们一定可以锁定一些位置的值:如果 preiprei1pre_i \neq pre_{i-1},那么一定有 pi=preip_i=pre_i;如果 sucisuci+1suc_i \neq suc_{i+1},那么一定有 pi=sucip_i=suc_i
对于剩下的不能确定值的位置,它应该满足 pi>max(prei,suci)p_i>\max(pre_i,suc_i),考虑把所有这样的 max(prei,suci)\max(pre_i,suc_i) 拎出来从大到小排序,乘法原理计算方案数即可。
时间复杂度 O(nlogn)\text{O}(n \log n),瓶颈在排序。

评论

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

正在加载评论...