4.2美团笔试题5(单调栈)

题意:

给一个1e5数组,求所有区间的最大值异或最小值的异或

解析:

异或的特性,相当于所有区间的最大值的异或,异或上所有区间的最小值的异或。

那么就很好做了,对于每个点,从前往后和从后往前做两遍单调栈,处理出每个点作为最大值的范围[L,R]。

然后对于a[i],如果 ( i L [ i ] + 1 ) ( R [ i ] i + 1 ) (i-L[i]+1)\cdot (R[i]-i+1) 是奇数,说明可以算到答案里面(x^x=0)。

最小值同理。

没保留代码。。

发布了773 篇原创文章 · 获赞 345 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/jk_chen_acmer/article/details/105279878