复习:
A
直接上线段树或者 ODT 即可。
B
一个区间的 \(\text{mex}\) 是 \(x\) 说明
\(0\sim x-1\)都在这个区间里,\(x\) 不在。
\(x\) 被所有的 \(\text{mex}\) 大于 \(x\) 的区间包含,不被 \(\text{mex}=x\) 的区间包含。
\(x+1\) 的区间要么包含 \(x\) 的区间,要么和 \(x\) 的区间无交,因此从小往大贪心就是对的。
C
左边放能力值,右边放 team,那么这个就是一个二分图。
从小往大贪心对能力值进行优先地匹配,即可得知 \(\text{mex}\) 的最大值。
将删除倒序改为插入,每次继续匹配即可。
D
莫队,或者持久化线段树维护每个数出现的最晚时间,查询最小的在区间前出现的数即可。
E
mex 和 xor 并没有显然的性质,考虑可行性 dp。
设 \(f_{i,j}\) 表示前 \(i\) 个数能否表示出 \(j\),\(n^3\) dp 是显然的。
考虑能否优化这个东西,有一个叫“极小mex区间的东西”,意思是不存在被它包含的区间mex等于他,结论是极小mex区间最多只有 \(2n\) 个。
证明:
假设有一个极小 mex 区间 \([l,r]\),他的 mex 不等于 \(0\)。
假设 \(a_l>a_r\),\(a_l\) 不等于 \(a_r\),否则删去一个一定不劣。
\(\text{mex}(l,r)\) 肯定大于 \(a_l\),因为不能等于,小于的话把 \(l\) 踢出去肯定不劣。
我们假设存在另一个极小 mex 区间 \([l,p]\),且 \(a_l>a_p\)
由于 \(\text{mex}(l,r)>a_l>a_p\) ,所以 \(a_p\) 肯定在 \([l,r]\) 中出现过。因此 \([l,p]\) 肯定不是极小 mex 区间。
所以一个 \(x\) 作为左右端点之多只会分别贡献一次。
那么我们发现 mex 一样的时候,取用更小的肯定不劣。
那么我们只把极小 mex 区间拿出来 dp,就是对的啦
F
考虑设 \(g_i\) 表示包含 \(0\sim i\) 之间所有数的路径数量
那么 mex 为 \(k\) 的路径数量就是包含 \(0\sim k-1\) 但是不包含 \(k\) 的路径数量,也就是 \(g_{k-1}-g_k\)。
那么以 \(0\)