解题思路
n 不超过 3×103,可以直接模拟。用数组 a[1..n] 保存当前序列,并用布尔表 f[i][j] 记录编号 i 是否在位置 j 出现过。初始时 f[i][i]=true。
对每次操作 [l,r]:把 a[l..r] 暂存,再把 a[r+1..n] 依次前移到从 l 开始的位置,最后把暂存片段接到末尾。这等价于把区间 [l,r] 挪到当前序列尾部。因为只有位置 l 到 n 可能变化,更新 f 时只需扫描这一段。
全部操作结束后,对每个编号统计 f[i][1..n] 中真值的个数。
复杂度分析