#include<iostream>
#include<cmath>
using namespace std;
const int maxn=1e5+;
//表示当前数在哪一块里面
int belong[maxn];
//每块的大小
int block;
//一共多少块
int num;
//这个数所在块的左端点
int l[maxn];
//这个数所在块的右端点
int r[maxn];
int n,q;
long long a[maxn],Max[maxn];
void build()
{
//每块的大小
block=sqrt(n);
//处理多少块
num=n/block;
//如果有多出来的
if(n%block)
num++;
//更新每块的左右边界
for(int i=;i<=num;i++)
l[i]=(i-)*block+,r[i]=i*block;
r[num]=n;
//当前数属于哪一块
for(int i=;i<=n;i++)
belong[i]=(i-)/block+;
//更新最大值
for(int i=;i<=num;i++)
for(int j=l[i];j<=r[i];j++)
Max[i]=max(Max[i],a[j]);
}
void update(int x,int y)
{
a[x]+=y;
Max[belong[x]]=max(Max[belong[x]],a[x]);
}
long long ask(int x,int y)
{
long long ans=;
//如果在同一块里面
if(belong[x]==belong[y])
{
for(int i=x;i<=y;i++)
ans=max(a[i],ans);
return ans;
}
//如果不在,分开讨论
for(int i=x;i<=r[belong[x]];i++)
ans=max(ans,a[i]);
for(int i=belong[x]+;i<belong[y];i++)
ans=max(ans,Max[i]);
for(int i=l[belong[y]];i<=y;i++)
ans=max(ans,a[i]);
return ans;
}
int main()
{
cin>>n>>q;
build();
for(int i=;i<=q;i++)
{
int op,l,r;
cin>>op>>l>>r;
if(op==)
update(l,r);
else
cout<<ask(l,r)<<endl;
}
}

UESTC 1324 卿学姐与公主 分块板子的更多相关文章

  1. UESTC - 1324 卿学姐与公主

    题目链接 某日,百无聊赖的卿学姐打开了某11区的某魔幻游戏 在这个魔幻的游戏里,生活着一个美丽的公主,但现在公主被关押在了魔王的城堡中. 英勇的卿学姐拔出利刃冲向了拯救公主的道路. 走过了荒野,翻越了 ...

  2. CDOJ 1324 卿学姐与公主 分块

    题目地址 分块模板 #include<cstdio> #include<algorithm> #include<math.h> using namespace st ...

  3. CDOJ 1324 卿学姐与公主(分块)

    CDOJ 1324 卿学姐与公主(分块) 传送门: UESTC Online Judgehttp://acm.uestc.edu.cn/#/problem/show/1324 某日,百无聊赖的卿学姐打 ...

  4. cdoj 1324 卿学姐与公主 线段树裸题

    卿学姐与公主 Time Limit: 2000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit St ...

  5. cdoj1324卿学姐与公主

    地址:http://acm.uestc.edu.cn/#/problem/show/1324 卿学姐与公主 Time Limit: 2000/1000MS (Java/Others)     Memo ...

  6. UESTC 1324:卿学姐与公主(分块)

    http://acm.uestc.edu.cn/#/problem/show/1324 题意:…… 思路:卿学姐的学习分块例题. 分块是在线处理区间问题的类暴力算法,复杂度O(n*sqrt(n)),把 ...

  7. A - 卿学姐与公主(线段树+单点更新+区间极值)

    A - 卿学姐与公主 Time Limit: 2000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

  8. 卿学姐与公主 UESTC - 1324 分块模板题

    题意:http://acm.uestc.edu.cn/#/problem/show/1324 中文题,自己看喽. 题解:分块模板,update时顺便更新块属性.ask时先判掉belong[l]==be ...

  9. CDOJ 1292 卿学姐种花 暴力 分块 线段树

    卿学姐种花 题目连接: http://acm.uestc.edu.cn/#/problem/show/1292 Description 众所周知,在喵哈哈村,有一个温柔善良的卿学姐. 卿学姐喜欢和她一 ...

随机推荐

  1. canvas跨域完美解决,微信头像解决跨域

    现在前端技术发展的越来越快,很多图片合成这种耗费服务器性能的,都可以移动到前端进行了合成了.而且合成很方便,我们利用 canvas 可以实现好多东西. 自动打算利用前端来合成图片,在网上就找到了 ht ...

  2. 云原生 - Why is istio(二)

    出处:https://cizixs.com/2018/08/26/what-is-istio 创作不易,在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处. 前言 随着微服务架构的流行, ...

  3. Java基础知识之设计模式--单例模式

    Java设计模式--单例模式 声明:本文根据慕课网汤小洋老师的精品课程整理来的:慕课网 什么是设计模式(Design Pattern)? 设计模式是一套被反复使用,多数人知晓的,经过分类编目的,代码设 ...

  4. Python黑客编程知识点整理

    Python转义字符 转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \ ...

  5. 初探 Node.js 框架:eggjs (环境搭配篇)

    eggjs 是一个优秀的 Node.js 框架 概述:为什么标题上说 eggjs 是一个优秀的 Node.js 框架(可跳过)? 换言之,我们为什么选择 eggjs 进行开发而不是之前初学时使用的 E ...

  6. Rancher2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群

    目录 1.Prometheus & Grafana 介绍 2.环境.软件准备 3.Rancher 2.x 应用商店 4.一键式部署 Prometheus 5.验证 Prometheus + G ...

  7. 如何优雅地使用containerd?这里有一份必读的技巧攻略

    前 言 Docker是我们常用的容器runtime,友好的CLI,丰富的社区资料,外加研发运维人员多年的经验积累,使用Docker几乎是没有任何门槛的事.而k3s为了降低资源消耗,将默认的runtim ...

  8. Spring使用外部属性文件

    一.在 Spring Config 文件中配置 Bean 时,有时候需要在 Bean 的配置里添加 系统部署的细节信息, 如文件路径,数据源配置信息.而这些部署细节实际上需要在配置文件外部来定义. 二 ...

  9. Codeforces 961C Chessboard(将碎了的、染色乱了的棋盘碎片拼一起)

    题目链接:点击打开链接 Magnus decided to play a classic chess game. Though what he saw in his locker shocked hi ...

  10. meta 的作用 搜集

    Meta标签中的format-detection属性及含义   format-detection翻译成中文的意思是“格式检测”,顾名思义,它是用来检测html里的一些格式的,那关于meta的forma ...