Codeforces Round #275 (Div. 2) D

题意 : 一个数组 给出m个限制条件 l r z 代表从l 一直 & 到 r 为 z  问能否构造出这种数组 如果可以 构造出来

因为 n m 都是1e5 而l r 可能输入进去就超时了 所以刚写完线段树课件的我想了很久想出来了线段树解法 ... 

想法是这样的 每次输入 update 结束后 全部query一遍 看看是否和期望一样

一开始的想法是 存下每个数组的&值 一开始是1<<31 - 1 然后每次进行update 都求出这个区间在树上区间没有被更新到的点的& 三者一& 继续向下

但是感觉时间复杂度很玄学 写完直接wa掉了 

后来想出了 | 的解法

思想 : 

利用tree存放每个区间的&的值 一开始是0 

如果我们对一个区间有一个期望 : l - r = z 那么一定满足一个东西 : l - r 的数字在二进制上全都包含z

所以每次 我们都对这个区间进行一个 | 上 z 的运算 至少要让 l - r 的数字拥有z

  

posted @   天翎月  阅读(130)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示