基础线段树

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define maxn 200010
#define lson p<<1
#define rson p<<1|1
struct NOD
{
int l,r;
int best;
} node[maxn<<];
void build(int l,int r,int p)
{
node[p].l = l,node[p].r = r;
if(l == r)
{
scanf("%d",&node[p].best);
return;
}
int mid = (l+r) >> ;
build(l,mid,lson);
build(mid+,r,rson);
node[p].best = max(node[lson].best,node[rson].best);
}
int ask(int l,int r,int p)
{
if(node[p].l == l && node[p].r == r)
{
return node[p].best;
}
int mid = (node[p].l+node[p].r)>>;
if(r <= mid)
return ask(l,r,lson);
else if(l >= mid+)
return ask(l,r,rson);
else return max(ask(l,mid,lson),ask(mid+,r,rson));
}
void updata(int id,int num,int p)
{
if(node[p].l==node[p].r && node[p].l == id)
{
node[p].best = num;
return;
}
int mid = (node[p].l+node[p].r) >> ;
if(id <= mid)
updata(id,num,lson);
else if(id > mid) updata(id,num,rson);
node[p].best = max(node[lson].best,node[rson].best);
}
int main()
{
int n,m;
while(EOF!=scanf("%d%d",&n,&m))
{
build(,n,);
while(m--)
{
char op[];
scanf("%s",op);
if(op[] == 'Q')
{
int l,r;
scanf("%d%d",&l,&r);
printf("%d\n",ask(l,r,));
}
else
{
int id,num;
scanf("%d%d",&id,&num);
updata(id,num,);
}
}
}
return ;
}

HDU 1754 I Hate It(线段树基础应用)的更多相关文章

  1. hdu 1754 I Hate It 线段树基础题

    Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求, ...

  2. hdu 1754 I Hate It 线段树 点改动

    // hdu 1754 I Hate It 线段树 点改动 // // 不多说,裸的点改动 // // 继续练 #include <algorithm> #include <bits ...

  3. HDU 1754 I Hate It(线段树之单点更新,区间最值)

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. 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 ...

  5. HDU 1754 I Hate It 线段树单点更新求最大值

    题目链接 线段树入门题,线段树单点更新求最大值问题. #include <iostream> #include <cstdio> #include <cmath> ...

  6. HDU 1754 I Hate It(线段树单点替换+区间最值)

    I Hate It [题目链接]I Hate It [题目类型]线段树单点替换+区间最值 &题意: 本题目包含多组测试,请处理到文件结束. 在每个测试的第一行,有两个正整数 N 和 M ( 0 ...

  7. HDU 1754 I Hate It (线段树)

    题意:略. 析:裸的线段树. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include < ...

  8. HDU 1754 I Hate It(线段树区间查询,单点更新)

    描述 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感.不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当然,老 ...

  9. HDU 1754 I Hate It (线段树)

    题目链接 Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老 ...

  10. hdu 1754 I Hate It(线段树水题)

    >>点击进入原题测试<< 思路:线段树水题,可以手敲 #include<string> #include<iostream> #include<a ...

随机推荐

  1. Git add和commit步骤分析

    修改后或者添加新的文件,执行add命令后,首先它会先存入本地库的暂存区, add可以上传很多个文件,然后执行commit命令后,都会被提交到默认的分支 Master分支上.只有文件更改和文件新建,都可 ...

  2. CentOS中由一般用户切换为root用户

    --->http://www.centoscn.com/CentOS/help/2014/0624/3173.html 1.打开终端,提示符为“$”,表明该用户为普通用户,此时,直接输su,回车 ...

  3. python常用操作

    1.进入python命令行: #python >>>... 退出python命令行 >>>exit() #... 2.运行1.py 直接运行1.py: #pytho ...

  4. gridview列绑定HyperLink

    <asp:HyperLink ID="HyperLink1" Target="_blank" runat="server" Navig ...

  5. app调用支付宝支付 笔记

    1.提交各种申请 2.通过后进入支付宝开放平台  --> 管理中心 -->创建应用  --> 填写相关信息 提交等待审核通过(1,2天)   3.下载集成包(https://doc. ...

  6. Nicholas C. Zakas谈怎样才能成为优秀的前端工程师

    黄色阴影为业务,红色字体为哲学 昨天,我负责了Yahoo!公司组织的一次面试活动,感触颇深的是其中的应聘者提问环节.我得说自己对应聘者们提出的大多数问题都相当失望.我希望听到一些对在Yahoo!工作充 ...

  7. project文件问题

    到编译文件中看看,红色的删除,坤哥这样做的 .

  8. 【java】基础中的杂乱总结(二)

    1 内部类进阶 package package8; //原则:先用内部类写 之后由于内部类匿名无法引用 用其继承的父类或实现的接口名 //再复写所有的抽象方法即可(是所有,否者还是抽象的,无法创建对象 ...

  9. ligerUI调用$.ligerDialog.open弹出窗口,关闭后无法获取焦点问题

    1:调用父窗口某一个文件框,获取焦点,   parent.window.document.getElementByIdx_x("roleName").focus(); 2:关闭父窗 ...

  10. popoverController(iPad)

    一.设置尺寸 提示:不建议,像下面这样吧popover的宽度和高度写死. 1 //1.新建一个内容控制器 2 YYMenuViewController *menuVc=[[YYMenuViewCont ...