省选模拟39
A. 逃离藏宝洞
根据数据分两类来做
第一类走一步查询一下,再根据上次走的判断一下就能回到地面
第二类走 \(k\) 步再查询,这样能够判断出向上走了几步,然后还能再根据走的信息再多走一步
算一下期望就能发现正好查询一次能走两步
B. 序列划分
设 \(f_i\) 表示在第 \(i\) 个划分的值
转移的话枚举上一次划分的位置,然后再乘上区间 \(mex\)
用数据结构优化一下就行
我写有点麻烦了,倒着删除一个数再区间赋值能简单一些
C. 重排列
发现 \(Bob\) 不能将两个不互质的两个数交换位置
于是将不互质的两个数连边, \(Alice\) 能做的就是将边定向,表示 \(Alice\) 最后的序列中,谁在谁的前面
然后跑拓扑,将普通队列换成优先队列就能实现 \(Bob\) 的操作