杂题

题意

\(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

posted @ 2020-05-28 11:00  Grice  阅读(81)  评论(0编辑  收藏  举报