题意
\(n\)个二元组\((a_i,b_i)\),\(a_i\in[0,10^9],b_i\in [1,3]\),有效区间\([l,r]\)为区间内\(cnt1,cnt2,cnt3\)互不相等(\(cnt1\)为\(a_i=1\)的数量),有效区间的权值为\(\oplus b_i\)。求以\(r=1\sim n\)为右端点的最大有效区间
做法
若忽略有效区间的限制,是一道可持久化trie的模板题
将\(a\)的数量求前缀和,每个位置相当于限制于一个三元组\((x,y,z)\),表示前缀\(a\)为\(1\)的数量\(x\)...
有效区间为\(l\),\(x_r-x_{l-1},y_r-y_{l-1},z_r-z_{l-1}\)互不相等,将三元组修改成\((x-y,x-z,y-z)\),则限制变为\(l-1\)与\(r\)的三元组三维均不相等
考虑钦定相等的维,容斥计算存在性
有个常数优化就是若两维相等则另外一维必定相等,则原来的\(8\)棵trie可以写成\(5\)棵trie