hdu1754 I Hate It(线段树单点更新,区间查询)
有更新单个学生成绩和查询某个区间内学生成绩最大值两种操作
线段树代码
#include<bits/stdc++.h>
using namespace std;
const int maxn=+;
using namespace std;
int a[maxn*];
const int INF=0x3f3f3f3f;
void PushUp(int i)
{
a[i]=max(a[i*],a[i*+]);
}
void build(int i,int l,int r)
{
if(l==r)
{
scanf("%d",&a[i]);
return;
}
int m=(l+r)/;
build(i*,l,m);
build(i*+,m+,r);
PushUp(i);
}
int query(int ql,int qr,int i,int l,int r)
{
if(ql<=l&&r<=qr)
return a[i];
int m=(l+r)/;
int maxx=-INF;
if(ql<=m)
maxx=max(maxx,query(ql,qr,i*,l,m));
if(qr>m)
maxx=max(maxx,query(ql,qr,i*+,m+,r));
return maxx;
}
void update(int id,int val,int i,int l,int r)
{
if(l==r)
{
a[i]=val;
return;
}
int m=(l+r)/;
if(id<=m)
update(id,val,i*,l,m);
else
update(id,val,i*+,m+,r);
PushUp(i);
}
int main()
{
int n,m;
while(~scanf("%d %d",&n,&m))
{
build(,,n);
while(m--)
{
char str[];
int x,y;
scanf("%s%d%d",str,&x,&y);
if(str[]=='Q')
printf("%d\n",query(x,y,,,n));
else
update(x,y,,,n);
}
}
return ;
}
hdu1754 I Hate It(线段树单点更新,区间查询)的更多相关文章
- HDU.1166 敌兵布阵 (线段树 单点更新 区间查询)
HDU.1166 敌兵布阵 (线段树 单点更新 区间查询) 题意分析 加深理解,重写一遍 代码总览 #include <bits/stdc++.h> #define nmax 100000 ...
- NYOJ-568/1012//UVA-12299RMQ with Shifts,线段树单点更新+区间查询
RMQ with Shifts 时间限制:1000 ms | 内存限制:65535 KB 难度:3 -> Link1 <- -> Link2 <- 以上两题题意是一样 ...
- hihoCoder week19 RMQ问题再临-线段树 单点更新 区间查询
单点更新 区间查询 #include <bits/stdc++.h> using namespace std; #define m ((l+r)/2) #define ls (rt< ...
- HDU 1166敌兵布阵+NOJv2 1025: Hkhv love spent money(线段树单点更新区间查询)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- HDU1166(线段树单点更新区间查询)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- CDOJ 1073 线段树 单点更新+区间查询 水题
H - 秋实大哥与线段树 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu Submit S ...
- HDU 1754.I Hate It-结构体版线段树(单点更新+区间查询最值)
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- Who Gets the Most Candies? POJ - 2886(线段树单点更新+区间查询+反素数)
预备知识:反素数解析 思路:有了反素数的解法之后就是线段树的事了. 我们可以用线段树来维护哪些人被淘汰,哪些人没被淘汰,被淘汰的人的位置,没被淘汰的人的位置. 我们可以把所有人表示为一个[1,n]的区 ...
- NBUT 1602 Mod Three(线段树单点更新区间查询)
[1602] Mod Three 时间限制: 5000 ms 内存限制: 65535 K 问题描述 Please help me to solve this problem, if so, Liang ...
随机推荐
- 一、BOM 二、DOM
一.BOM(window对象)###<1>window属性对象 window.location 当前浏览器的地址对象 window.history 浏览器访问过的地址对象 window.o ...
- Elasticsearch 填坑记
前言 技术的发展日新月异,传统企业数据库Oracle.SqlServer.DB2,Mysql等在今日不断的被各种大厂自研数据库取代,当然也有类似Elasticsearch等优秀的满足海量数据所使用的开 ...
- October 2nd 2017 Week 40th Monday
Grown-ups work for things. Grown-ups pay. Grown-ups suffer consequences. 真正的成年人会奋斗.会付出.会承担后果. How to ...
- Sailing
Sailing 目录 1基本信息 2歌曲简介 3歌词内容 4歌手简介 5专辑介绍 1基本信息编辑 歌曲: Sailing 所属专辑: Atlantic Crossing 艺人:Rod Stewart[ ...
- Promise & Deferred objects in JavaScript Pt.1: Theory and Semantics.
原文:http://blog.mediumequalsmessage.com/promise-deferred-objects-in-javascript-pt1-theory-and-semanti ...
- 鲜为人知的 Python 语法
所有人(好吧,不是所有人)都知道 python 是一门用途广泛.易读.而且容易入门的编程语言. 但同时 python 语法也允许我们做一些很奇怪的事情. 使用 lambda 表达式重写多行函数 ...
- uva 12508 - Triangles in the Grid(几何+计数)
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u011328934/article/details/35244875 题目链接:uva 12508 ...
- javascript中对数组对象的深度拷贝
在前端开发的某些逻辑中,经常需要对现有的js对象创建副本,避免污染原始数据的情况. 如果是简单的一维数组对象,可以使用两个原生方法: 1.splice var arr1 = ['a', 'b', 'c ...
- ethers.js-4-Contracts
Contracts A Contract is an abstraction of an executable program on the Ethereum Blockchain. A Contra ...
- VC++程序运行时间测试函数
0:介绍 我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数.还比如我们通过记录函数或者算 ...