分析

由于下标过大,考虑离散,不仅仅是区间左右端点

假设只有一个区间从1到\(x\),那么修改后答案应该是\(x+1\)

所以说还要记录右端点+1的位置,你以为这就能A了吗

为了避免标记被覆盖,无论是否找到区间,都要下传标记,并且如果当前标记为异或,

那么在修改完之后原来的标记异或抵消,全0变全1,全1变全0,查询就类似权值线段树的方法就好了

时间复杂度\(O(nlog_2n)\)


代码

#include <cstdio>
#include <cctype>
#include <algorithm>
#define rr register
using namespace std;
typedef long long lll;
const int N=300011;
int lazy[N<<2],z[N],m,n;
lll w[N<<2],b[N],l[N],r[N];
inline lll iut(){
rr lll ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline void print(lll ans){
if (ans>9) print(ans/10);
putchar(ans%10+48);
}
inline void doit(int k,int l,int r,int z){
if (!z) return;
if (z==1) w[k]=r-l+1;
else if (z==2) w[k]=0;
else w[k]=r-l+1-w[k];
if (z==3) lazy[k]^=z;
else lazy[k]=z;
}
inline void pdown(int k,int l,int r){
if (!lazy[k]||l==r) return;
rr int mid=(l+r)>>1;
doit(k<<1,l,mid,lazy[k]);
doit(k<<1|1,mid+1,r,lazy[k]);
lazy[k]=0;
}
inline void update(int k,int l,int r,int x,int y,int z){
pdown(k,l,r);
if (l==x&&r==y){doit(k,l,r,z); return;}
rr int mid=(l+r)>>1;
if (y<=mid) update(k<<1,l,mid,x,y,z);
else if (x>mid) update(k<<1|1,mid+1,r,x,y,z);
else update(k<<1,l,mid,x,mid,z),update(k<<1|1,mid+1,r,mid+1,y,z);
w[k]=w[k<<1]+w[k<<1|1];
}
inline signed query(int k,int l,int r){
if (l==r) return l;
rr int mid=(l+r)>>1; pdown(k,l,r);
if (w[k<<1]==mid-l+1) return query(k<<1|1,mid+1,r);
else return query(k<<1,l,mid);
}
signed main(){
m=iut(),b[n=1]=1;
for (rr int i=1;i<=m;++i){
z[i]=iut(),l[i]=iut(),r[i]=iut();
b[++n]=l[i],b[++n]=r[i],b[++n]=r[i]+1;
}
sort(b+1,b+1+n),n=unique(b+1,b+1+n)-b-1;
for (rr int i=1;i<=m;++i){
l[i]=lower_bound(b+1,b+1+n,l[i])-b;
r[i]=lower_bound(b+1,b+1+n,r[i])-b;
update(1,1,n,l[i],r[i],z[i]);
print(b[query(1,1,n)]),putchar(10);
}
return 0;
}

#线段树,离散#nssl 1476 联的更多相关文章

  1. hdu1542 Atlantis(扫描线+线段树+离散)矩形相交面积

    题目链接:点击打开链接 题目描写叙述:给定一些矩形,求这些矩形的总面积.假设有重叠.仅仅算一次 解题思路:扫描线+线段树+离散(代码从上往下扫描) 代码: #include<cstdio> ...

  2. [cdoj843] 冰雪奇缘 (线段树+离散)

    [线段树 + 离散化] Description 艾莎女王又开始用冰雪魔法盖宫殿了. 她决定先造一堵墙,于是释放魔法让形为直角梯形的冰砖从天而降,定入冻土之中. 现在你将回答女王的询问:某段冻土上冰砖的 ...

  3. sdut 2159 Ivan comes again!(2010年山东省第一届ACM大学生程序设计竞赛) 线段树+离散

    先看看上一个题: 题目大意是: 矩阵中有N个被标记的元素,然后针对每一个被标记的元素e(x,y),你要在所有被标记的元素中找到一个元素E(X,Y),使得X>x并且Y>y,如果存在多个满足条 ...

  4. 51Nod 1175 区间中第K大的数 (可持久化线段树+离散)

    1175 区间中第K大的数 基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题   一个长度为N的整数序列,编号0 - N - 1.进行Q次查询,查询编号i至j的所有 ...

  5. [POJ] 3277 .City Horizon(离散+线段树)

    来自这两篇博客的总结 http://blog.csdn.net/SunnyYoona/article/details/43938355 http://m.blog.csdn.net/blog/mr_z ...

  6. poj City Horizon (线段树+二分离散)

    http://poj.org/problem?id=3277 City Horizon Time Limit: 2000MS   Memory Limit: 65536K Total Submissi ...

  7. [BZOJ 1018] [SHOI2008] 堵塞的交通traffic 【线段树维护联通性】

    题目链接:BZOJ - 1018 题目分析 这道题就说明了刷题少,比赛就容易跪..SDOI Round1 Day2 T3 就是与这道题类似的..然而我并没有做过这道题.. 这道题是线段树维护联通性的经 ...

  8. (中等) POJ 2528 Mayor's posters , 离散+线段树。

    Description The citizens of Bytetown, AB, could not stand that the candidates in the mayoral electio ...

  9. [BZOJ4869][六省联考2017]相逢是问候(线段树+扩展欧拉定理)

    4869: [Shoi2017]相逢是问候 Time Limit: 40 Sec  Memory Limit: 512 MBSubmit: 1313  Solved: 471[Submit][Stat ...

  10. [CSP-S模拟测试]:联(小清新线段树)

    题目描述 由于出题人懒所以没有背景.一个无限长的$01$序列,初始全为$0$,每次选择一个区间$[l,r]$进行操作,有三种操作:$\bullet 1\ l\ r$将$[l,r]$中所有元素变成$1$ ...

随机推荐

  1. 【Android 逆向】【攻防世界】easyjni

    1. apk 安装到手机,提示需要输入flag 2. jadx打开apk public class MainActivity extends c { static { System.loadLibra ...

  2. Postman文件数据导入导出

    https://zhuanlan.zhihu.com/p/535757471?utm_id=0

  3. django中update_or_create()

    update_or_create()方法中有一个defaults参数 模型字段会根据查询条件进行查询,如果查询到了,那么就用defaults对应的值去更新字段,如果没有查到就用defaults对应的值 ...

  4. java个人博客

    效果浏览 首页 详情页 Aboutme 后台管理 管理/添加博客 添加分类 管理员管理 友情链接 访问地址 前台地址http://localhost 后台地址:http://localhost/adm ...

  5. 在Avalonia项目中使用MediatR和MS.DI库实现事件驱动通信

    大家好,我是沙漠尽头的狼! AvaloniaUI是一个强大的跨平台.NET客户端开发框架,让开发者能够针对Windows.Linux.macOS.Android和iOS等多个平台构建应用程序.在构建复 ...

  6. welearn平台答案 大学英语 视听说 综合教程

    打开页面 1. F12 2. ctrl+shift+c 3. 鼠标移动到选项位置 4. 带data-solution的就是答案

  7. centos 目录磁盘使用情况

    最简单的查看方法可以使用ls -ll.ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB.MB等为单位进行显示,这样比较直观一些.   通过命令du -h –max- ...

  8. 孔夫子旧书网书籍信息得爬取并保存为json,csv,excel多种文件格式

    python版本:3.7 需要得引入得包: from selenium import webdriver from selenium.common.exceptions import TimeoutE ...

  9. nowrap - table td 列 宽度 不被挤 - 大表格制作

    nowrap - table td 列 宽度 不被挤 - 大表格制作 表格前几列 设置完宽度,会被右侧动态数据挤没有宽度,加上nowrap,就保证宽度了

  10. tp5.1 controller 名称自动转换大小写,导致文件名对不上 url_convert

    // 是否自动转换URL中的控制器和操作名 'url_convert' => false, // true,