hdu 1754 I Hate It_线段树
题意:略
思路:套hdu1166模版改改就行了,要注意的是,网上有的代码是错的,还贴出来...
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define MAXN 200100
int n,ans;
struct{
int l,r,value,max;
}tree[MAXN<<2];
void Build(int l,int r,int id){
tree[id].l=l;
tree[id].r=r;
tree[id].max=-1;
if(l!=r){
int mid=(l+r)>>1;
Build(l,mid,id<<1);
Build(mid+1,r,id<<1|1);
}
}
void update(int l,int value,int id){
if(tree[id].l==tree[id].r&&tree[id].l==l){
tree[id].max=value;
return;
}
int mid=(tree[id].l+tree[id].r)>>1;
if(l<=mid)
update(l,value,id<<1);
else
update(l,value,id<<1|1);
tree[id].max=max(tree[id<<1|1].max,tree[id<<1].max); }
void query(int l,int r,int id){ if(tree[id].l==l&&tree[id].r==r){
ans=max(ans,tree[id].max);
return;
}
int mid=(tree[id].l+tree[id].r)>>1;
if(r<=mid)
return query(l,r,id<<1);
else if(l>mid)
return query(l,r,id<<1|1);
else{
query(l,mid,id<<1);
query(mid+1,r,id<<1|1);
}
}
int main(int argc, char** argv) {
int t,x,y,n,i,value,m;
char str[5];
while(scanf("%d%d",&n,&m)!=EOF){
Build(1,n,1);
for(i=1;i<=n;i++){
scanf("%d",&value);
update(i,value,1);
}
for(i=0;i<m;i++){
scanf("%s %d%d",str,&x,&y);
if(str[0]=='U')update(x,y,1);
else{
ans=0;
query(x,y,1);
printf("%d\n",ans);
}
}
}
return 0;
}
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 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求, ...
随机推荐
- Silverlight 结合ArcGis 在地图上画线
原文 http://www.dotblogs.com.tw/justforgood/archive/2012/05/10/72085.aspx 先来看看完成后的画面,我从桃园画到高雄,再由高雄画到香港 ...
- UESTC_秋实大哥去打工 2015 UESTC Training for Data Structures<Problem G>
G - 秋实大哥去打工 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Subm ...
- tomcat https 未测试成功的版本
- 对中级Linux 用户非常有用的20 个命令
也许你已经发现第一篇文章非常的有用,这篇文章是继对初级Linux用户非常有用的20个命令的一个延伸. 第一篇文章的目的是为新手准备的而这篇文章则是为了Linux的中高级用户.在这里你将学会如何进行自定 ...
- ALSA音频工具amixer,aplay,arecord
ALSA音频工具编译安装 ========================================================================1.官网http://www. ...
- poj 2377 Bad Cowtractors(最大生成树!)
Description Bessie has been hired to build a cheap internet network among Farmer John's N (2 <= N ...
- 监控父元素里面子元素内容变化 DOMSubtreeModified
1监控ul的li的变化情况,并实时输出li的长度 布局: <ul id="isSelected"></ul> <span id="modal ...
- uva 714 - Copying Books(贪心 最大值最小化 二分)
题目描写叙述开头一大堆屁话,我还细致看了半天..事实上就最后2句管用.意思就是给出n本书然后要分成k份,每份总页数的最大值要最小.问你分配方案,假设最小值同样情况下有多种分配方案,输出前面份数小的,就 ...
- jquery中push()的用法(数组添加元素)
push定义和用法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. 语法 arrayObject.push(newelement1,newelement2,....,newele ...
- angular controller之间通信方式
对于日常开发中,难免会有controller之间通信需求.对于controller之间通信有两种方式可以做到. 用 Angular 进行开发,基本上都会遇到 Controller 之间通信的问题,本文 ...