mex 学习笔记

trick 整合

  1. 若固定区间一端点,另一端点移动,那么 mex 的变化时单调的。

题目

QOJ7685. Barkley II \(\checkmark\)

题目大意

有 \(n\) 名学生,算法编号 \(1\sim m\),第 \(i\) 名学生掌握算法 \(a_i\)。选择一个学生编号的连续区间 \([l,r]\),评分为该区间内不同算法数量减去区间内未出现的最小算法编号(若所有算法都出现则为 \(m+1\)),求最大评分。
\(t\le 5\times10^5,\ n,m\le 5\times10^5\),所有测试用例 \(n\) 之和 \(\le 5\times10^5\)。

解题思路

我们枚举 \(a_i\) 并钦定 \(a_i=mex\),然后将 \([last[a_i]+1,i-1]\) 作为查询区间。其实实际上 \([last[a_i]+1,i-1]\) 的 \(mex\) 可能 \(<a_i\) 但是它不会影响答案,因为真实的答案区间一定更大,并且会在更小的 \(a_i\) 的统计到。

查询区间的数量是 \(O(n)\),现在问题就相当于是一个静态区间数颜色,可以离线做。

posted @ 2026-09-17 20:36  lcx_OIer  阅读(15)  评论(0)    收藏  举报