题意:

输入一行数字,查询第i个数到第j个数之间的最大值。可以修改其中的某个数的值。

输入:

包含多组输入数据。

每组输入首行两个整数n,m。表示共有n个数,m次操作。

接下来一行包含n个整数。

接下来m行,每行包含一个字母s,两个整数a,b。

当s为’Q’,表示查询第a个数到第b个数之间的最大值。

当s为’U’,表示将第a个数更改为b。

输出:

每次查询输出一个结果,每次输出占一行。

题解:

点修改区间求最值,可以用树状数组模板。

具体见代码——

 #include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std; const int N = ; int a[N], c[N];
int t, n, m; int lowbit(int x)
{
return x&(-x);
} void Maxn(int x, int y)
{
a[x] = y;
for(int i = x; i <= n; i += lowbit(i)) //需要修改的c[]
{
c[i] = y;
for(int j = ; j < lowbit(i); j <<= ) //修改时需要比较的c[]
{
c[i] = c[i] > c[i-j] ? c[i] : c[i-j];
}
}
} void Init()
{
int y;
memset(c, , sizeof(c));
for(int i = ; i <= n; i++)
{
scanf("%d", &y);
a[i] = y;
c[i] = y;
for(int j = ; j <lowbit(i); j <<= ) //需要比较的c[]
c[i] = c[i] > c[i-j] ? c[i] : c[i-j];
}
} void Query(int l, int r)
{
int ans = ;
while()
{
ans = ans > a[r] ? ans : a[r];
if(r == l) break;
for(r -= ; r-l >= lowbit(r); r -= lowbit(r))
ans = ans > c[r] ? ans : c[r];
}
printf("%d\n", ans);
} void Work()
{
char s[];
int x, y;
for(int i = ; i <= m; i++)
{
scanf("%s%d%d", s, &x, &y);
if(s[] == 'U') Maxn(x, y);
else if(s[] == 'Q') Query(x, y);
}
} int main()
{
//freopen("test.in", "r", stdin);
while(~scanf("%d%d", &n, &m))
{
Init();
Work();
}
}

树状数组区间求最值模板——

http://www.cnblogs.com/mypride/p/5002556.html

hdu 1754 I Hate It(树状数组区间求最值)2007省赛集训队练习赛(6)_linle专场的更多相关文章

  1. HDU 1754 I hate it 树状数组维护区间最大值

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

  2. HDU 1556 Color the ball (树状数组区间更新)

    水题,练习一下树状数组实现区间更新. 对于每个区间,区间左端点+1,右端点的后一位-1,查询每个位置的覆盖次数 #include <cstdio> #include <cstring ...

  3. HDU3874 /HDU3333 树状数组 区间求不重复数和

    Necklace Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  4. HDU2838 Cow Sorting 树状数组 区间求和加逆序数的应用

    这题目意思非常easy,就是给你一个数组,然后让你又一次排好序,排序有要求的,每次仅仅能交换两个元素的位置,交换须要一个代价 就是两个元素之和,问你把数组重小到大排好最少须要多少代价 可能一開始想不到 ...

  5. HDU 5862 Counting Intersections(离散化+树状数组)

    HDU 5862 Counting Intersections(离散化+树状数组) 题目链接http://acm.split.hdu.edu.cn/showproblem.php?pid=5862 D ...

  6. hdu 5517 Triple(二维树状数组)

    Triple Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  7. hdu 4638 树状数组 区间内连续区间的个数(尽可能长)

    Group Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  8. HDU 3015 Disharmony Trees(树状数组)

    题意:给你n棵树,每棵树上有两个权值X H 对于X离散化 :3 7 1 5 3 6 -> 2 6 1 4 2 5,对于H一样 然后F = abs(X1-X2)   S=min(H1,H2) 求出 ...

  9. HDU 4455 Substrings --递推+树状数组优化

    题意: 给一串数字,给q个查询,每次查询长度为w的所有子串中不同的数字个数之和为多少. 解法:先预处理出D[i]为: 每个值的左边和它相等的值的位置和它的位置的距离,如果左边没有与他相同的,设为n+8 ...

随机推荐

  1. xen list_domains stat 解析

    XenServer中可以使用list_domains命令来查看所有VM以及Dom0的运行状态以及简单的资源消耗,如下: [root@xenserver ~]# list_domains id | uu ...

  2. 鸟哥的Linux私房菜——第十章

    视频链接 土豆网:http://www.tudou.com/programs/view/YI5fpob0Wwk B站(推荐):http://www.bilibili.com/video/av98064 ...

  3. linux常用端口查询

    0 | 无效端口,通常用于分析操作系统1 | 传输控制协议端口服务多路开关选择器2 | 管理实用程序3 | 压缩进程5 | 远程作业登录7 | 回显9 | 丢弃11 | 在线用户13 | 时间17 | ...

  4. 「MYSQL」MYSQL中的int(11)到底代表什么意思?

    一.前言 在工作中经常要与mysql打交道,但是对mysql的各个字段类型一直都是一知半解,因此写本文总结记录一番. 二.简介 对于int类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用 ...

  5. UVALive 7456 Least Crucial Node

    题目链接 题意: 给定一个无向图,一个汇集点,问哪一个点是最关键的,如果有多个关键点,输出序号最小的那个. 因为数据量比较小,所以暴力搜索就行,每去掉一个点,寻找和汇集点相连的还剩几个点,以此确定哪个 ...

  6. python所有基础

    下面就不一一列举了,所有的资料都和GitHub对接,到时候我有更新就直接拖到GitHub上面了.入门的小伙伴们可以进来看看,估计后面还会有很多项目,待更新.

  7. J - FatMouse's Speed dp

    题目链接: https://vjudge.net/contest/68966#problem/J 找最长子串并且记录路径. TLE代码: #include<iostream> #inclu ...

  8. 002_分布式搜索引擎Elasticsearch的查询与过滤

    一.写入 先来一个简单的官方例子,插入的参数为-XPUT,插入一条记录. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 curl -XPUT 'http:/ ...

  9. ***实用函数:PHP explode()函数用法、切分字符串,作用,将字符串打散成数组

    下面是根据explode()函数写的切分分割字符串的php函数,主要php按开始和结束截取中间数据,很实用 代码如下: <? // ### 切分字符串 #### function jb51net ...

  10. 打造一款便携版的Sublime Text

    https://segmentfault.com/a/1190000000707661 https://www.cnblogs.com/52cik/p/sublime-diy.html 直接安装Sub ...