A pair of wings for me at this moment
2021.10.21 模拟赛
题没交上去
A. 排队
某种意义的模拟题,线段树暴力维护当然是可以的
但是考虑每次会加入一个空格和删除若干空格,所以 set 一类的东西会更方便些
或者用栈记录空格位置和长度来做到
B. 排序
发现一个区间会被重复统计当且仅当它的左端点是最小值或右端点,用单调栈统计下每个数作为最大/最小值能到的左/右端点
然后减去同时满足左右端点的,可以用主席树统计 的个数
C. 序列问题
发现其实这个填数的过程限制很多,从 到 的过程中如果 只出现了一次,那么 只能是
否则的话他可以随便放一个数,假设是 则往后移动 位后就又可以随便填
设 表示填第 个格子方案数,则 后缀和优化下可以
然后考虑前 个数的状态,枚举第一次出现重复的位置是 则另一个可以选择 个位置,其他数有 的方案,乘上 即可
D. 序列问题
很好想,每次询问容斥一遍就行
不过不太好写,要注意二元环和枚举的子集恰好构成环一类的