题目链接

吉司机线段树裸题...

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=1e6+,inf=0x3f3f3f3f3f3f3f3f;
ll n,m,a[N],mx[N<<],se[N<<],nmx[N<<],lz[N<<];
ll sum[N<<];
#define ls (u<<1)
#define rs (u<<1|1)
#define mid ((l+r)>>1)
void pu(ll u) {
sum[u]=sum[ls]+sum[rs];
mx[u]=max(mx[ls],mx[rs]),se[u]=min(mx[ls],mx[rs]);
se[u]=se[u]==mx[u]?max(se[ls],se[rs]):max(se[u],max(se[ls],se[rs]));
nmx[u]=(mx[ls]==mx[u]?nmx[ls]:)+(mx[rs]==mx[u]?nmx[rs]:);
}
void change(ll u,ll x) {sum[u]-=(mx[u]-x)*nmx[u],mx[u]=lz[u]=x;}
void pd(ll u) {
if(~lz[u]) {
if(mx[ls]>lz[u])change(ls,lz[u]);
if(mx[rs]>lz[u])change(rs,lz[u]);
lz[u]=-;
}
}
void upd(ll L,ll R,ll x,ll u=,ll l=,ll r=n) {
if(l>R||r<L||mx[u]<=x)return;
if(l>=L&&r<=R&&se[u]<x) {change(u,x); return;}
pd(u),upd(L,R,x,ls,l,mid),upd(L,R,x,rs,mid+,r),pu(u);
}
ll qrymx(ll L,ll R,ll u=,ll l=,ll r=n) {
if(l>R||r<L)return ~inf;
if(l>=L&&r<=R)return mx[u];
pd(u);
return max(qrymx(L,R,ls,l,mid),qrymx(L,R,rs,mid+,r));
}
ll qrysum(ll L,ll R,ll u=,ll l=,ll r=n) {
if(l>R||r<L)return ;
if(l>=L&&r<=R)return sum[u];
pd(u);
return qrysum(L,R,ls,l,mid)+qrysum(L,R,rs,mid+,r);
}
void build(ll u=,ll l=,ll r=n) {
lz[u]=-;
if(l==r) {sum[u]=mx[u]=a[l],se[u]=~inf,nmx[u]=; return;}
build(ls,l,mid),build(rs,mid+,r),pu(u);
}
int main() {
ll T;
for(scanf("%lld",&T); T--;) {
scanf("%lld%lld",&n,&m);
for(ll i=; i<=n; ++i)scanf("%lld",&a[i]);
build();
while(m--) {
ll f,l,r,x;
scanf("%lld%lld%lld",&f,&l,&r);
if(f==)scanf("%lld",&x),upd(l,r,x);
else if(f==)printf("%lld\n",qrymx(l,r));
else if(f==)printf("%lld\n",qrysum(l,r));
}
}
return ;
}

HDU - 5306 Gorgeous Sequence (吉司机线段树)的更多相关文章

  1. BZOJ4355: Play with sequence(吉司机线段树)

    题意 题目链接 Sol 传说中的吉司机线段树??感觉和BZOJ冒险那题差不多,就是强行剪枝... 这题最坑的地方在于对于操作1,$C >= 0$, 操作2中需要对0取max,$a[i] > ...

  2. bzoj4355 Play with sequence(吉司机线段树)题解

    题意: 已知\(n\)个数字,进行以下操作: \(1.\)区间\([L,R]\) 赋值为\(x\) \(2.\)区间\([L,R]\) 赋值为\(max(a[i] + x, 0)\) \(3.\)区间 ...

  3. UVALive - 4108 SKYLINE (吉司机线段树)

    题目链接 题意:在一条直线上依次建造n座建筑物,每座建筑物建造完成后询问它在多长的部分是最高的. 比较好想的方法是用线段树分别维护每个区间的最小值mi和最大值mx,当建造一座高度为x的建筑物时,若mi ...

  4. bzoj5312 冒险(吉司机线段树)题解

    题意: 已知\(n\)个数字,进行以下操作: \(1.\)区间\([L,R]\) 按位与\(x\) \(2.\)区间\([L,R]\) 按位或\(x\) \(3.\)区间\([L,R]\) 询问最大值 ...

  5. bzoj4695 最假女选手(势能线段树/吉司机线段树)题解

    题意: 已知\(n\)个数字,进行以下操作: \(1.\)给一个区间\([L,R]\) 加上一个数\(x\) \(2.\)把一个区间\([L,R]\) 里小于\(x\) 的数变成\(x\) \(3.\ ...

  6. HDU 5306 Gorgeous Sequence[线段树区间最值操作]

    Gorgeous Sequence Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

  7. HDU - 6315 吉司机线段树

    题意:给出a,b数组,区间上两种操作,给\(a[L,R]\)+1s,或者求\(\sum_{i=l}^{r}a_i/b_i\) 一看就知道是吉司机乱搞型线段树(低配版),暴力剪枝就好 维护区间a的最大值 ...

  8. 2015 Multi-University Training Contest 2 hdu 5306 Gorgeous Sequence

    Gorgeous Sequence Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

  9. [HDU] 5306 Gorgeous Sequence [区间取min&求和&求max]

    题解: 线段树维护区间取min求和求max 维护最小值以及个数,次小值 标记清除时,分情况讨论 当lazy>max1 退出 当max1>lazy>max2(注意不要有等号) 更新 否 ...

随机推荐

  1. 【链接】SpringBoot启动错误

    [错误解决]SpringBoot启动错误 https://blog.csdn.net/Small_Mouse0/article/details/78551900

  2. UVa 11549 计算器谜题(Floyd判圈算法)

    https://vjudge.net/problem/UVA-11549 题意: 有一个老式计算器,只能显示n位数字,输入一个整数k,然后反复平方,如果溢出的话,计算器会显示结果的最高n位.如果一直这 ...

  3. LeetCode第[79]题(Java):Word Search(矩阵单词搜索)

    题目:矩阵单词搜索 难度:Medium 题目内容: Given a 2D board and a word, find if the word exists in the grid. The word ...

  4. 初识HTML和CSS

    HTML 1.一套规则,浏览器认识的规则. 2.开发者: 学习Html规则 开发后台程序: - 写Html文件(充当模板的作用) ****** - 数据库获取数据,然后替换到html文件的指定位置(W ...

  5. 简述<T> 与 <?>

    引 jdk1.5以后引入了泛型的概念,即:<>,规定了集合中元素类型 比如下面代码: List list1 = new ArrayList(); List<String> li ...

  6. DataTemplate——数据模板的一个典型例子

    下面是ListBox.ItemTemplate(数据模板)应用的“典型”例子,概述如下两点: 1:Grid部分,用来“规划” 数据 显示的 布局(即数据长成什么样子)     2:给DataTempl ...

  7. fis 前端构建工具

    1.http://fis.baidu.com/ (前端构建工具)

  8. 027——VUE中事件修饰符:stop prevent self capture

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. vue基础指令

  10. linux 字符串查找

    获取指定目录文件名包含指定字符的文件,然后遍历是否有包含特定字符串,有的话打出文件名 #!/bin/sh COMMAND=`find /data/home/ftp/data/20/201704/27/ ...