hdu 1754 I Hate It【线段树】
维护一个最大值
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
#define lp (p << 1)
#define rp (p << 1 | 1)
#define getmid(l,r) l+(r-l)/2 const int maxn = ;
const int INF = ;
struct node{
int l,r,maxx;
}t[*maxn]; int n,m,nmax;
int a[maxn]; void Push_up(int p){
t[p].maxx = max(t[lp].maxx,t[rp].maxx);
} void Build_tree(int p,int l,int r){
t[p].l = l;
t[p].r = r;
if(l == r){
t[p].maxx = a[l];
return;
}
int mid = getmid(l,r);
Build_tree(lp,l,mid);
Build_tree(rp,mid+,r);
Push_up(p);
} void Update(int p,int s,int w){
if(t[p].l == t[p].r){
t[p].maxx = w;
return;
}
int mid = getmid(t[p].l,t[p].r);
if(s <= mid) Update(lp,s,w);
else Update(rp,s,w);
Push_up(p);
} void Query(int p,int l,int r){
if(t[p].maxx <= nmax) return;
if(t[p].l == l && t[p].r == r ){
nmax = max(t[p].maxx,nmax);
return;
}
int mid = getmid(t[p].l,t[p].r);
if(r <= mid) Query(lp,l,r);
else if(l > mid) Query(rp,l,r);
else{
Query(lp,l,mid);
Query(rp,mid+,r);
}
} int main(){
while(scanf("%d %d",&n,&m) != EOF){
for(int i = ;i <= n;i++) scanf("%d",&a[i]);
Build_tree(,,n); char ch;
int x,y;
while(m--){
cin>>ch>>x>>y;
if(ch == 'Q') {
nmax = -INF;
Query(,x,y);
printf("%d\n",nmax);
}
else Update(,x,y);
}
}
return ;
}
加油~~坚持每天三颗树~
gooooo-----
hdu 1754 I Hate It【线段树】的更多相关文章
- hdu 1754 I Hate It 线段树 点改动
// hdu 1754 I Hate It 线段树 点改动 // // 不多说,裸的点改动 // // 继续练 #include <algorithm> #include <bits ...
- HDU 1754 I Hate It(线段树之单点更新,区间最值)
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 1754 I Hate It 线段树RMQ
I Hate It Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=175 ...
- HDU 1754 I Hate It 线段树单点更新求最大值
题目链接 线段树入门题,线段树单点更新求最大值问题. #include <iostream> #include <cstdio> #include <cmath> ...
- HDU 1754 I Hate It(线段树单点替换+区间最值)
I Hate It [题目链接]I Hate It [题目类型]线段树单点替换+区间最值 &题意: 本题目包含多组测试,请处理到文件结束. 在每个测试的第一行,有两个正整数 N 和 M ( 0 ...
- HDU 1754 I Hate It (线段树)
题意:略. 析:裸的线段树. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include < ...
- HDU 1754 I Hate It(线段树区间查询,单点更新)
描述 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感.不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当然,老 ...
- HDU 1754 I Hate It (线段树)
题目链接 Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老 ...
- hdu 1754 I Hate It 线段树基础题
Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求, ...
- hdu 1754 I Hate It(线段树水题)
>>点击进入原题测试<< 思路:线段树水题,可以手敲 #include<string> #include<iostream> #include<a ...
随机推荐
- C# 把对象序列化 JSON 字符串 和把JSON字符串还原为对象
/// <summary> /// 把对象序列化 JSON 字符串 /// </summary> /// <typeparam name="T"> ...
- C# 响应一个html页面
System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("<html><head ...
- MVC传值前台
ViewBag.model = bLL.GetModel((int)id); ViewBag.RecruitmentTime = ViewBag.model.RecruitmentTime.ToStr ...
- CDR中是否有图层,如何调出图层面板?
什么是图层?如果有点PS基础的同学,应该会非常清楚这个概念,它是构成图像的重要组成单位,许多效果可以通过对层的直接操作而得到,并在当前图层操作时候不会影响到其他图层,所以在绘图的过程中有着很重要的作用 ...
- Here comes Treble: A modular base for Android
On the Android team, we view each dessert release as an opportunity to make Android better for our u ...
- java 常用API 包装 数据转换
package com.oracel.demo01; public class Sjzh { // 将基本数据类型转字符串 public static void main(String[] args) ...
- Javase 简单代码练习
public class Test10 { public static void main(String[] args) { System.out.println("------------ ...
- 判断list数组里的json对象有无重复,有则去重留1个
查找有无重复的 var personLength = [{ certType: '2015-10-12', certCode:'Apple'}, { certType: '2015-10-12', c ...
- Nginx1.14.2新增tcp/udp代理stream
[root@rhel nginx-1.12.1]# ./configure --help --help print this message --prefix=PATH set installatio ...
- Jmeter中使用CSV Data Set Config
A