6356专题

Glad You Came hdu 6356 —— 线段树区间更新+剪枝

Problem Description Steve has an integer array a of length n (1-based). He assigned all the elements as zero at the beginning. After that, he made m operations, each of which is to update an interval

HDU 6356 Glad You Came (RMQ)

题目链接 用给定方法生成区间[l,r]和一个数v,每次将[l,r]中小于v的数变为v,最后求每个位置上i*ai的异或和。 将区间中小于v的数变为v,实质上就是需要维护并修改区间最大值。区间最大值可以用线段树实现,也可以用RMQ倍增来实现。 对于一个待处理的区间[l,r],考虑,这样就将[l,r]拆成了两个可重叠的,长度均为1<<tmp的子区间。dp[i][j]表示从i开始长度为1<<j的子区间