https://vjudge.net/contest/66989#overview

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath>
#define lson (i<<1)
#define rson (i<<1|1) using namespace std;
const int maxn=2e5+;
int val[maxn]; struct Seg
{
int l,r,lazy,val;
}tree[maxn<<]; void push_up(int i)
{
tree[i].val=max(tree[lson].val,tree[rson].val);
} void push_down(int i)
{
if(tree[i].lazy==-)
{
return;
}
tree[lson].lazy=tree[lson].val=tree[i].lazy;
tree[rson].lazy=tree[rson].val=tree[i].lazy;
tree[i].lazy=-;
} void Build(int l,int r,int i=)
{
tree[i].l=l;
tree[i].r=r;
tree[i].lazy=-;
if(l==r)
{
tree[i].val=val[l];
return;
}
push_down(i);
int mid=(tree[i].l+tree[i].r)>>;
Build(l,mid,lson);
Build(mid+,r,rson);
push_up(i);
} int Query(int l,int r,int i=)
{
if(tree[i].l==l&&tree[i].r==r)
{
return tree[i].val;
}
push_down(i);
int mid=(tree[i].l+tree[i].r)>>;
if(r<=mid)
{
return Query(l,r,lson);
}
else if(l>mid)
{
return Query(l,r,rson);
}
else
{
return max(Query(l,mid,lson),Query(mid+,r,rson));
}
} void Setval(int l,int r,int x,int i=)
{
if(tree[i].l==l&&tree[i].r==r)
{
tree[i].lazy=tree[i].val=x;
return;
}
push_down(i);
int mid=(tree[i].l+tree[i].r)>>;
if(r<=mid)
{
Setval(l,r,x,lson);
}
else if(l>mid)
{
Setval(l,r,x,rson);
}
else
{
Setval(l,mid,x,lson);
Setval(mid+,r,x,rson);
}
push_up(i);
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=;i<=n;i++)
{
scanf("%d",&val[i]);
}
Build(,n);
char q[];
int a,b;
for(int i=;i<=m;i++)
{
scanf("%s%d%d",q,&a,&b);
if(q[]=='Q')
{
printf("%d\n",Query(a,b));
}
else
{
Setval(a,a,b);
}
}
}
return ;
}

【算法系列学习】线段树 单点覆盖,区间查询最大值 [kuangbin带你飞]专题七 线段树 B - I Hate It的更多相关文章

  1. 【算法系列学习】线段树vs树状数组 单点修改,区间查询 [kuangbin带你飞]专题七 线段树 A - 敌兵布阵

    https://vjudge.net/contest/66989#problem/A 单点修改,区间查询 方法一:线段树 http://www.cnblogs.com/kuangbin/archive ...

  2. [kuangbin带你飞]专题七 线段树

            ID Origin Title 228 / 440 Problem A HDU 1166 敌兵布阵   207 / 438 Problem B HDU 1754 I Hate It   ...

  3. 【算法系列学习】线段树 区间修改,区间求和 [kuangbin带你飞]专题七 线段树 C - A Simple Problem with Integers

    https://vjudge.net/contest/66989#problem/C #include<iostream> #include<cstdio> #include& ...

  4. 【算法系列学习】SPFA邻接表最短路 [kuangbin带你飞]专题四 最短路练习 F - Wormholes

    https://vjudge.net/contest/66569#problem/F 题意:判断图中是否存在负权回路 首先,介绍图的邻接表存储方式 数据结构:图的存储结构之邻接表 邻接表建图,类似于头 ...

  5. 【算法系列学习】Dijkstra单源最短路 [kuangbin带你飞]专题四 最短路练习 A - Til the Cows Come Home

    https://vjudge.net/contest/66569#problem/A http://blog.csdn.net/wangjian8006/article/details/7871889 ...

  6. 【算法系列学习三】[kuangbin带你飞]专题二 搜索进阶 之 A-Eight 反向bfs打表和康拓展开

    [kuangbin带你飞]专题二 搜索进阶 之 A-Eight 这是一道经典的八数码问题.首先,简单介绍一下八数码问题: 八数码问题也称为九宫问题.在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的 ...

  7. 【算法系列学习】Dijkstra算法变形 [kuangbin带你飞]专题四 最短路练习

    https://vjudge.net/contest/66569#problem/B 类试题:noip2013 货物运输 POJ 1797 Heavy Transportation 方法一:Dijks ...

  8. 【算法系列学习】DP和滚动数组 [kuangbin带你飞]专题十二 基础DP1 A - Max Sum Plus Plus

    A - Max Sum Plus Plus https://vjudge.net/contest/68966#problem/A http://www.cnblogs.com/kuangbin/arc ...

  9. 【算法系列学习】Dijkstra求最短路 [kuangbin带你飞]专题四 最短路练习 D - Silver Cow Party

    https://vjudge.net/contest/66569#problem/D trick:1~N各点到X可以通过转置变为X到1~N各点 #include<iostream> #in ...

随机推荐

  1. SignalR的一点点东西

    JS部分 $.connection.hub.start().done(function () { alert(ok); }).fail(function (error) { alert(error); ...

  2. 在x64位的操作系统客户端如何连接oracle ?

    好久没更新博客了,上周在x64位的操作系统中安装好了32位或64位的oracle 11g客户端,但用SSIS或Microsoft SQL Server 2012报表生成器3.0去连接oracle 11 ...

  3. C#实现GridView导出Excel

    using System.Data;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System. ...

  4. nodejs npm常用命令 转

    npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准.有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. 1.npm install m ...

  5. js正则表达test、exec和match的区别

    test的用法和exec一致,只不过返回值是 true false. 以前用js很少用到js的正则表达式,即使用到了,也是诸如邮件名称之类的判断,网上代码很多,很少有研究,拿来即用. 最近开发遇到一些 ...

  6. Akari谜题(关灯问题)的开灯解法

    提高解时预处理的速度 本方法的结果是得到满足所有黑色有数字方块的一个带有未照亮的块的可能解集. 解集大小为 4~(3号块数量+1号块数量)+6~(2号块数量)-灯互相照射到的解的集合.集合中的灯为黄色 ...

  7. 20155215 2016-2017-2 《Java程序设计》第5周学习总结

    学号 2006-2007-2 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 尝试捕捉错误对象,try,catch. 如何抛出错误对象,throw语法. error代表系统错 ...

  8. 项目的ip地址更改,用git从远程提取代码出现错误,提示为 network error connection timed out

    昨天公司的ip进行了修改,在今天从远程提取代码的过程中提示network error connection timed out错误,从网上看了一下解决方法 1:打开项目文件夹,点击查看 2:勾选隐藏的 ...

  9. C语言求最小公倍数和最大公约数三种算法(经典)

    把以前写的一些经验总结汇个总,方便给未来的学弟学妹们做个参考! --------------------------永远爱你们的:Sakura 最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们 ...

  10. python executemany的使用

    使用executemany对数据进行批量插入的话,要注意一下事项: #coding:utf8 conn = MySQLdb.connect(host = "localhost", ...