线段树每个区间维护上下界以及要整体增加的标记即可,时间复杂度$O(m\log n)$。

#include<cstdio>
#define inf 1500000000
int n,m,op,c,d,p;
struct Node{int l,r,t;}T[1050000];
inline void read(int&a){
char c;bool f=0;a=0;
while(!((((c=getchar())>='0')&&(c<='9'))||(c=='-')));
if(c!='-')a=c-'0';else f=1;
while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';
if(f)a=-a;
}
inline int min(int a,int b){return a<b?a:b;}
inline int max(int a,int b){return a>b?a:b;}
inline void up(int x){
T[x].l=min(T[x<<1].l,T[x<<1|1].l);
T[x].r=max(T[x<<1].r,T[x<<1|1].r);
}
void build(int x,int a,int b){
if(a==b){read(T[x].l),T[x].r=T[x].l;return;}
int mid=(a+b)>>1;
build(x<<1,a,mid),build(x<<1|1,mid+1,b),up(x);
}
inline void add1(int x,int p){T[x].l+=p,T[x].r+=p,T[x].t+=p;}
inline void make(int x,int l,int r){
T[x].l=min(max(T[x].l,l),r);
T[x].r=min(max(T[x].r,l),r);
}
inline void pb(int x){
if(T[x].t)add1(x<<1,T[x].t),add1(x<<1|1,T[x].t),T[x].t=0;
make(x<<1,T[x].l,T[x].r),make(x<<1|1,T[x].l,T[x].r);
}
void add(int x,int a,int b){
if(c<=a&&b<=d){add1(x,p);return;}
pb(x);
int mid=(a+b)>>1;
if(c<=mid)add(x<<1,a,mid);
if(d>mid)add(x<<1|1,mid+1,b);
up(x);
}
void change(int x,int a,int b,int l,int r){
if(c<=a&&b<=d){make(x,l,r);return;}
pb(x);
int mid=(a+b)>>1;
if(c<=mid)change(x<<1,a,mid,l,r);
if(d>mid)change(x<<1|1,mid+1,b,l,r);
up(x);
}
int ask(int x,int a,int b){
if(c<=a&&b<=d)return T[x].r;
pb(x);
int mid=(a+b)>>1,t=-inf;
if(c<=mid)t=ask(x<<1,a,mid);
if(d>mid)t=max(t,ask(x<<1|1,mid+1,b));
return up(x),t;
}
int main(){
read(n),read(m),build(1,1,n);
while(m--){
read(op),read(c),read(d);
if(op==4){printf("%d\n",ask(1,1,n));continue;}
read(p);
if(op==1)add(1,1,n);
if(op==2)change(1,1,n,-inf,p);
if(op==3)change(1,1,n,p,inf);
}
return 0;
}

  

BZOJ4280 : [ONTAK2015]Stumilowy sad的更多相关文章

  1. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  2. Don't make a promise when you are in Joy. Don't reply when you are Sad.Don't take decisions when you are Angry.Think Twice.Act Wise.

    Don't make a promise when you are in Joy. Don't reply when you are Sad.Don't take decisions when you ...

  3. BZOJ 4245: [ONTAK2015]OR-XOR

    4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 492  Solved: 269[Submit][Sta ...

  4. SAD算法在opencv上的实现代码(c++)

    #include <opencv2/opencv.hpp>#include <opencv2/core/core.hpp>#include <opencv2/highgu ...

  5. sad

    1.really sad about sth 2.really sad to hear sth 3.upset /unhappy about sth 4.a little down 5.down in ...

  6. 【转】RDO、SAD、SATD、λ

    SAD(Sum of Absolute Difference)=SAE(Sum of Absolute Error)即绝对误差和 SATD(Sum of Absolute Transformed Di ...

  7. Sad Angel (悲伤的天使)-Игорь Крутой

    悲伤的天使(neyanbhbin) -经典作曲Sad Angel( Печальныйангел)生活是一种连续的影响,每个小人物都有小人物的伟大故事.从开头的情侣,到美丽的丝带,从清洁老伯到卖气球的 ...

  8. 【图像配准】基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法

    简介: 本文主要介绍几种基于灰度的图像匹配算法:平均绝对差算法(MAD).绝对误差和算法(SAD).误差平方和算法(SSD).平均误差平方和算法(MSD).归一化积相关算法(NCC).序贯相似性检测算 ...

  9. BZOJ 4276: [ONTAK2015]Bajtman i Okrągły Robin [线段树优化建边]

    4276: [ONTAK2015]Bajtman i Okrągły Robin 题意:\(n \le 5000\)个区间\(l,r\le 5000\),每个区间可以选一个点得到val[i]的价值,每 ...

随机推荐

  1. bzoj千题计划210:bzoj2642 | Poj3968 | UVALive 4992| hdu 3761 Jungle Outpost

    http://www.lydsy.com/JudgeOnline/problem.php?id=2642 题意: n个瞭望台,形成一个凸n边形.这些瞭望台的保护范围是这个凸包内的任意点. 敌人进攻时, ...

  2. starUML的使用方法和各种线条的含义

    使用方法https://www.cnblogs.com/syncCN/p/5433746.html 各种线条的含义:https://www.cnblogs.com/huaxingtianxia/p/6 ...

  3. CMSZU站群管理系统 升级到 v1.8 [源码下载]

    CmsZu 简介 CMSZU即CMS族,是个网站内容管理平台,基于PHP+MYSQL技术创建,源码开放. CmsZu 更新说明 V1.8 修改了些bug 完善数据库管理 -> 数据库表管理的 字 ...

  4. CSS-3 Transition 的使用

    css的transition允许css的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值." tran ...

  5. java代码实现图片处理功能。对图片质量进行压缩。

    java图片处理有点头疼,找了很多资料.在这里进行一个汇总,记录下个人的体验,也希望对大家有所帮助. 需求:浏览的图片需要在1M一下. 1.真正对图片的质量进行压缩的(不是通过修改图片的高,宽进行缩小 ...

  6. oracel回收站清理

    从powerdesigner中往oracle中导入表,出现了很多类似“BIN$Z35FPY7eFZDgUKjAC94NkA==$0 ”这样的表名, 原因是删除表的时候没有彻底的删除表,而是把表放入回收 ...

  7. 2017/05/21 java 基础 随笔

    工具类:所有的方法都是静态的,如果一个类中所有的方法都是静态的,需要再多做一步,私有构造方法,不让其他类创建本类对象. 生成文档: java.lang 包不用导入 常见代码块的应用    * a:局部 ...

  8. flask基础之Response响应对象(九)

    前言 Response对象负责对客户端的响应,每一个请求都会有一个Response对象,那么它在一个请求的声明周期内是怎么发挥作用的呢? Response对象 响应发生的位置 先回顾一下http请求的 ...

  9. springboot创建一个可执行的jar

    让我们通过创建一个完全自包含的可执行jar文件来结束我们的示例,该jar文件可以在生产环境运行.可执行jars(有时候被成为胖jars "fat jars")是包含你的编译后的类和 ...

  10. 20175225《java程序设计》第五周学习总结

    20175225 2018-2019-2 <Java程序设计>第5周学习总结 教材学习内容总结 1.接口体中包含常量的声明(没有变量)和抽象方法两部分.接口体中只有抽象方法,没有普通的方法 ...