训练(线段树+树状数组) poj——3264

这个题应该算是比较简单的线段树问题吧,还可以用RMQ做,不过现在还不太熟悉就用线段树做了,直接附代码了!

#include <stdio.h>
#define M 50000
#define OX 0x7fffffff
struct node{
int r,l;
int Max,Min;
};
node elem[
4*M+50];
int num[4*M+50],m_max,m_min;
int max(int a,int b){
if (a>=b) return a;
elsereturn b;
}
int min(int a,int b){
if (a>=b) return b;
elsereturn a;
}
void creat(int l,int r,int id){
elem[id].l
=l;
elem[id].r
=r;
if (l==r){
elem[id].Max
=elem[id].Min=num[l];
return ;
}
int mid=(l+r)>>1;
creat(l,mid,id
<<1);
creat(mid
+1,r,(id<<1)+1);
elem[id].Max
=max(elem[id<<1].Max,elem[(id<<1)+1].Max);
elem[id].Min
=min(elem[id<<1].Min,elem[(id<<1)+1].Min);
}
void sre(int l,int r,int id){
if (elem[id].l==l && elem[id].r==r){
m_max
=max(m_max,elem[id].Max);
m_min
=min(m_min,elem[id].Min);
return ;
}
if (l<=elem[id<<1].r){
int mid=min(r,elem[id<<1].r);
sre(l,mid,id
<<1);
}
if (r>=elem[(id<<1)+1].l){
int mid=max(l,elem[(id<<1)+1].l);
sre(mid,r,(id
<<1)+1);
}
}
int main()
{
int N,Q;
int i,t1,t2;
scanf(
"%d %d",&N,&Q);
for (i=1 ; i<=N ; i++)
scanf(
"%d",&num[i]);
creat(
1,N,1);
for (i=1 ; i<=Q ; i++){
m_max
=-OX;
m_min
=OX;
scanf(
"%d %d",&t1,&t2);
sre(t1,t2,
1);
//printf("%d %d %d\n",m_max,m_min,m_max-m_min);
printf("%d\n",m_max-m_min);
}
return0;
}

转载于:https://www.cnblogs.com/Soul-ice-ACM/archive/2011/08/12/2136408.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode—56. 合并区间

56. 合并区间 题目描述&#xff1a; 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 考察重点&#x…

在asp.net中实现回车替代Tab键

通常在网页中添加大量内容时&#xff0c;为了便捷&#xff0c;需要实现回车替代Tab键&#xff0c;按照次序填写内容&#xff0e;由于在asp.net中fouce函数中有功能&#xff0c;既控件聚焦&#xff0e;但是如果要实现回车替代Tab键还得需要脚本语言来实现&#xff0e;其实原理很…

POJ3006-Dirichlet's Theorem on Arithmetic Progressions

素数打表&#xff0c;水题。 #include<stdio.h> #include<string.h> const int Max1000001; bool isprime[Max]; int main(void) {int i,j,a,d,n;memset(isprime,true,sizeof(isprime));for(i3;i<1000;i2)for(j3;j<Max/i;j2)if(isprime[i])isprime[i*j]false…

[转]软件测试的完整分类

[转]软件测试的完整分类 2015-06-09 转自&#xff1a;软件测试的完整分类 转载于:https://www.cnblogs.com/Ming8006/p/4563994.html

LeetCode—304. 二维区域和检索 - 矩阵不可变

304. 二维区域和检索 - 矩阵不可变 题目描述&#xff1a; 给定一个二维矩阵 matrix&#xff0c;以下类型的多个请求&#xff1a; 计算其子矩形范围内元素的总和&#xff0c;该子矩阵的 左上角 为 (row1, col1) &#xff0c;右下角 为 (row2, col2) 。 实现 NumMatrix 类&…

ubuntu下的各种环境变量

如想将一个路径加入到$PATH中&#xff0c;可以像下面这样做&#xff1a; 1. 控制台中&#xff1a; $ PATH"$PATH:/my_new_path" &#xff08;关闭shell&#xff0c;会还原PATH&#xff09;2. 修改profile文件&#xff1a; $ vi /etc/profile 在里面加入: export PATH…

采用HttpModules来重写URLs(原理篇)转

据说通过HttpModules可以将类似于&#xff1a;http://www.infotouch.cn/detail.aspx?id120 的URL地址重写为&#xff1a;http://www.infotouch.cn/detail/120.aspx 。这样最直接的好处就是可以让搜索引擎搜索到页面&#xff0c;因为搜索引擎对&#xff1f;之后的参数不太理睬。…

Linux Centos7 离线安装docker 【官网翻译和注释】

Centos7的Docker安装 需要一个维护版本的centos7&#xff0c;所以6不行。 卸载旧版本 旧版本的docker被称为 docker or docker-engine 如果存在请删除它们。 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logro…

C#操作XML小结_转载

一、简单介绍 using System.Xml;//初始化一个xml实例XmlDocument xmlnew XmlDocument(); //导入指定xml文件xml.Load(path);xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml")); //指定一个节点XmlNode rootxml.SelectSingleNode("/root&qu…

LeetCode—57. 插入区间

57. 插入区间 题目描述&#xff1a; 给你一个 无重叠的 &#xff0c;按照区间起始端点排序的区间列表。 在列表中插入一个新的区间&#xff0c;你需要确保列表中的区间仍然有序且不重叠&#xff08;如果有必要的话&#xff0c;可以合并区间&#xff09;。 考察重点&#xf…

海文考研名师做客新浪解析2007心理学考试大纲

http://edu.sina.com.cn/exam/2006-07-19/171146933.html 转载于:https://www.cnblogs.com/liuzhengliang/archive/2006/09/23/512594.html

杭电1262--寻找素数对(打表)

寻找素数对 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9505 Accepted Submission(s): 4822 Problem Description哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的…

LeetCode—306. 累加数

306. 累加数 题目描述&#xff1a; 累加数 是一个字符串&#xff0c;组成它的数字可以形成累加序列。 一个有效的 累加序列 必须 至少 包含 3 个数。除了最开始的两个数以外&#xff0c;序列中的每个后续数字必须是它之前两个数字之和。 给你一个只包含数字 ‘0’-‘9’ 的字…

push模式的水晶报表,参数的设置要放在数据源设置之后

不知道为什么有这个限制&#xff0c;如果放在设置数据源之前&#xff0c;在显示的时候就会提示这个参数的值未设置&#xff0c;要重新手动设置。 转载于:https://www.cnblogs.com/strinkbug/archive/2006/10/13/528243.html

oracle 10g 企业管理器无法打开解决方法

今天发现oracle 10g企业管理器无法打开&#xff0c;于是google&#xff0c;发现问题解决了。本质就是重新配置。步骤如下&#xff1a; C:\Documents and Settings\Administrator>emctl status dbconsoleEnvironment variable ORACLE_SID not defined. Please define it.C:\D…

I.MX6 Linux Qt 启动流程跟踪

/*************************************************************************** I.MX6 Linux Qt 启动流程跟踪* 声明&#xff1a;* 1. 源代码来源MY-I.MX6&#xff1b;* 2. 本文仅仅是对启动流程的解析&#xff0c;没有解释启动流程为什么是这…

deploy.php

<?php namespace Deployer;require recipe/common.php;// Project name set(application, tp_web);// Project repository set(repository, git地址);// [Optional] Allocate tty for git clone. Default value is false. set(git_tty, true); // Shared files/dirs betwee…

LeetCode—59. 螺旋矩阵 II

59. 螺旋矩阵 II 题目描述&#xff1a; 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 考察重点&#xff1a;way数组记录走的方向&#xff0c;结合DFS实现矩阵螺旋遍历。 int way[][] …

dos下查看机器端口占用情况

在dos下有一个命令netstat -a&#xff0c;但是有时候识别不出来&#xff0c;偶就遇到了这种情况。怎么解决呢&#xff1f; 在我的电脑里C:\WINDOWS\system32下有个net.exe之类的文件。 步骤如下&#xff1a; 1&#xff0c;cmd 2&#xff0c;cd C:\WINDOWS\system32 3, C:\…

HTTP调试之保持连接状态(微软知识库文章)

HTTP性能调试优化之二&#xff08;翻译&#xff0c;微软知识库文章&#xff09; 原文出自 http://technet2.microsoft.com/WindowsServer/en/library/d92d338e-efdc-4e11-83a7-9af34c8bb5291033.mspx?mfrtrue 有一系列文章&#xff0c;其中第一篇是关于HTTP 压缩的&#xff0c…