HDU-1754-I Hate It(线段树,简单,不过好像有点问题)
题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=1754
题目不难,不过开始我犯了一个低级错误,输入n,m,m代表操作的数目,我没有写了,写代码的时候,就感觉有问题,不过那时不知怎么的了,糊涂了,
就是while(m--)我没有写了,就错了,我一直在考虑,哪里错了想了很久,一直WA 后来看了一遍题目才知道犯了一个如此低级,改了,AC,不过,在想
为什么WA的时候,我想到一个问题,就是如果把最大的改成很小,即小于第二大的就可以了,那输出的时候还是那个最大的我举个例子。
例如:
我的AC代码,测出来的数据
输入:
4 3
1 2 3 4
Q 1 4
U 4 2
Q 1 4
输出
4
4
按题目意思输出应该为
输出
4
3
但是
输出
4
4
的过了,难道是题目的测试数据,不够全面吗?
要是输出该为
输出
4
3
的话 要如何做呢,我想了一下,还没想出来,谁想出来了,多多指教,将感激不尽!
把最大的改成很小,即小于第二大的就可以了,那么如何更新最大的了呢!//只有这里会出问题 ,其他的地方没有。
我的AC代码
#include<stdio.h>
#include<iostream>
#define MAXSIZE 200005 using namespace std;
struct node
{
int left,right,m;
}tree[MAXSIZE*4];
void build(int node,int left,int right)
{
tree[node].left=left;
tree[node].right=right;
tree[node].m=0;
if(left==right)
return ;
int mid=(left+right)/2;
build(node*2,left,mid);
build(node*2+1,mid+1,right);
}
void update(int node,int pos,int val)
{
tree[node].m=max(val,tree[node].m);
if(tree[node].left==pos&&tree[node].right==pos)
return ;
int mid=(tree[node].left+tree[node].right)/2;
if(pos<=mid) update(node*2,pos,val);
else
update(node*2+1,pos,val);
}
int query(int node,int left,int right)
{
if(tree[node].left==left&&tree[node].right==right)
return tree[node].m;
int mid=(tree[node].left+tree[node].right)/2;
if(right<=mid)
return query(node*2,left,right);
else if(left>mid)
return query(node*2+1,left,right);
else
return max( query(node*2,left,mid), query(node*2+1,mid+1,right) );
}
int main(void)
{
int n,m,i,j,k,l;
int x,y;
char c;
while(scanf("%d%d",&n,&m)==2)
{
build(1,1,n);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
update(1,i,x);
}
getchar();
while(m--)
{
scanf("%c",&c);
scanf("%d%d",&x,&y);
getchar();
if(c=='Q')
{
printf("%d\n",query(1,x,y));
}
else if(c=='U')
{
update(1,x,y);
}
}
}
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 (线段树)
题目链接 Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老 ...
- hdu 1754 I Hate It 线段树基础题
Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求, ...
- 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(线段树水题)
>>点击进入原题测试<< 思路:线段树水题,可以手敲 #include<string> #include<iostream> #include<a ...
随机推荐
- 解决Ubuntu系统中文乱码显示问题,终端打开文件及查看目录
解决Ubuntu系统中文乱码显示问题 [日期:2014-02-20] 来源:Linux社区 作者:njchenyi [字体:大 中 小] 我是先安装了Ubuntu 12.04 Server,然后 ...
- javascript中的原型继承
在Javascript面向对象编程中,原型继承不仅是一个重点也是一个不容易掌握的点.在本文中,我们将对Javascript中的原型继承进行一些探索. 基本形式 我们先来看下面一段代码: <cod ...
- panel的autoscroll属性不起作用
已经设置panel的autoscroll属性为true,而且panel内 的控件也达到了应该滚动的地步,但是就是不见滚动条.这是为什么呢? 原因就是richtextbox的anchor属性设置了bot ...
- CodeForces 610A Pasha and Stick
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using ...
- ASP.NET MVC 5 WEB API 用户验证
参考博客:ASP.NET MVC5+EF6+EasyUI 后台管理系统(65)-MVC WebApi 用户验证 (1) 参考博客:MVC WebApi 用户验证 (2)构建ASP.NET MVC5+E ...
- FreeRTOS代码剖析
FreeRTOS代码剖析之1:内存管理Heap_1.c FreeRTOS代码剖析之2:内存管理Heap_2.c FreeRTOS(V8.0.1)系统之xTaskGenericCreate() ...
- 子数涵数·C语言——循环语句
之前,我们讲过了编程中的三种结构(顺序.条件.循环),现在我们来看一下循环语句如何编写. 一.while循环语句(先判断后执行) 1 #include<stdio.h> 2 int m ...
- Ubuntu Apache2 配置简单介绍
debian系列的(如Ubuntu,本人是Ubuntu 12.04的)Apache 通过 apt-get 方式安装的是 Apache2 的,是 httpd 的 2.x 版本,名字直接叫 apache2 ...
- [iOS Animation]-CALayer 图层性能
图层性能 要更快性能,也要做对正确的事情. ——Stephen R. Covey 在第14章『图像IO』讨论如何高效地载入和显示图像,通过视图来避免可能引起动画帧率下降的性能问题.在最后一章,我们将着 ...
- RSA实践指南
创建时间:2005-03-02 文章属性:原创 文章提交:watercloud (watercloud_at_xfocus.org) RSA算法基础->实践 讲讲自己学习RSA中的实践过程,已经 ...