洛谷P15652 [省选联考 2026] 排列游戏 / perm题解

非常巧妙的题目,知道方法代码就很好写了。

考虑 000 在第一位的特殊情况,这时我们询问前缀 mex,记为 sss 数组,如果 si≠si+1s_i≠s_{i+1}si=si+1,那么 ai+1=sia_{i+1}=s_iai+1=si。对于剩下的数字,我们只需要随便填,只要满足 sss 数组即可。

为什么呢?因为如果一个数 xxx 填入后前缀 mex 没有发生变化,那么一定有比 xxx 小的数没有填入。也就是说,xxx 的前后都有比 xxx 小的数(前面至少有 000),我们把这两个数分别记为 lll,rrr。那么,如果一个区间的 mex 小于 xxx,这个区间就和 xxx 没有关系。如果一个区间的 mex 要大于 xxx,这个区间就一定要跨越 lll,rrr。这时我们发现,xxx 只要在 lll,rrr 之间就行,随便找个地方放。

至于 000 不在第一位的情况,分别跨越 000 做前缀与后缀 mex 即可。注意询问 0,n−10,n-10,n−1 时直接用 nnn 即可,不用调用函数。

正好询问 nnn 次。

相关推荐
zhanghaha13144 小时前
C++构造函数的一些其他应用(逐词逐句保姆讲解)
c++
jimy15 小时前
c++的 Type Traits (二、更详细版本)
开发语言·c++
碧海银沙音频科技研究院5 小时前
基于炬芯ATS3089X自研AEC声学回声消除算法
算法
通问AI6 小时前
在两台 Mac Studio 上跑 800B 模型:MLX + RDMA over Thunderbolt 实测与四道门选型法
算法
ZywOo6236 小时前
《算法竞赛进阶指南》0x03 前缀和与差分
算法
Scintilla_y6 小时前
DAY2 滑动窗口
算法·leetcode·散列表
lvwangshu6 小时前
笛卡尔树
算法·图论
026d236 小时前
状态信号只知“其然”不知“其所以然”:变工况机械故障诊断的物理盲区
算法
姜鱼问生6 小时前
备份和服务器在同一台机器上,等于没备份
算法·架构
姜鱼问生7 小时前
别再 chmod 777 了,用 ACL 给它开一扇窗
后端·算法·架构