训练(线段树+树状数组) poj——3264
这个题应该算是比较简单的线段树问题吧,还可以用RMQ做,不过现在还不太熟悉就用线段树做了,直接附代码了!
#include <stdio.h>#define M 50000#define OX 0x7fffffffstruct 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
训练(线段树+树状数组) poj——3264相关推荐
- 树状数组 poj 2352
#include<algorithm> #include<iostream> using namespace std;int C[32001];//数状数组 int Out[1 ...
- #树状数组#poj 2828 Buy Tickets
题目 输入插队的人和插队的位置,求最终所有人的位置. 分析 树状数组,从后往前(倒推),然后就是要让在前面的次序-1. 代码 #include <cstdio> #include < ...
- poj 2352 Stars 线段树(先建后查/边建边查)/树状数组三种方法思路详解,带你深入了解线段树难度⭐⭐⭐★
poj 2352 Stars 目录 poj 2352 Stars 1.树状数组 2.线段树,先建树后查找 3.线段树,边建树边查找 Description Astronomers often exam ...
- Housewife Wind POJ - 2763 倍增LCA+树状数组 或 树链剖分+线段树
题目 链接:http://poj.org/problem?id=2763 Language:Default Housewife Wind Time Limit: 4000MS Memory Lim ...
- POJ - 2352 Stars(线段树/树状数组)
题目链接:点击查看 题目大意:给出n个星星的坐标,规定每个星星的等级为在它左下方的星星的个数,输出0~n-1每个等级共有多少个星星 题目分析:裸的线段树,因为x坐标和y坐标都已经给排好序了,是按照y升 ...
- A Simple Problem with Integers POJ - 3468(线段树+区间查询+区间修改+建树+懒惰标记模板)+(树状数组)
题意: 有一个数组,有两种操作.1: Q a b 求[a,b]的和 2:C a b c 给[a,b] 的所有元素都加上c. 题目: You have N integers, A1, A2, ... , ...
- 【POJ - 3321】 Apple Tree(dfs序 + 线段树维护 或 dfs序 + 树状数组维护)
题干: There is an apple tree outside of kaka's house. Every autumn, a lot of apples will grow in the t ...
- 【POJ - 3468 】 A Simple Problem with Integers (线段树模板 区间更新 + 区间和查询)(不能树状数组或差分数组)
题干: You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type o ...
- 8.8线段树和树状数组
题目链接 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28619#overview 密码 acmore 还是感觉不怎么会线段树,还是 ...
- POJ-2155 Matrix 二维线段树 | 树状数组
题目链接:http://poj.org/problem?id=2155 比较典型的二维线段树题目,直接永久更新即可,在询问的时候,要询问每个x区间的子树,复杂度O(log(n)^2). 也可以用树状数 ...
最新文章
- VS 2017显示“高级保存选项”命令操作方法
- xcode4 语法高亮和自动补全失效的解决办法
- Python中最常用的字符串方法!
- java基础---流程控制
- linux文本运行层次,Linux基础知识之---文件系统层级结构
- 心跳超时时间设置_定时器实现之时间轮算法
- react周期函数介绍
- 安卓蓝牙BluetoothBLE开发JDY-10M
- PHP从入门到精通 第二版pdf
- 怎么样计算机械功率,电功率与机械功率的换算公式
- python3 判断.xlsl表的两列是否一致
- gmail邮箱注册成功流程
- 翟菜花:她经济的营销攻坚战,4C的用户导向才是破局之法
- JavaScript 判断手机号码格式 正则表达式 亲测
- 新概念英语第二册61-96课(转)
- ZZULIOJ:1016: 银行利率
- Java面向对象笔记 • 【第10章 Swing编程初级应用】
- [MRCTF2020]套娃
- #Python #2022卡塔尔世界杯 #FIFA World Cup Qatar 2022 # 机器学习 #数据分析 用Python预测世界杯决赛
- 手绘 | 深入解析风控8大场景中的机器学习应用
热门文章
- 红外传感器型号和参数_红外传感器参数|热释电红外传感器参数
- python安装缺少api怎么办_请问缺少win32api模块该如何解决?
- 停车场管理系统代码_jsp19109商场商铺停车场服务系统-SSM-Mysql
- macos安装低版本php,mac下安装多个版本PHP及切换
- centos路由查看命令_CentOS下使用Route命令添加路由
- Unity项目代码书写规范
- 打造“神犇”是教育的未来吗?
- Java生鲜电商平台-微服务入门与服务的拆分架构实战
- 点击跳转到QQ聊天界面
- 标准C++类std::string的内存共享和Copy-On-Write(写时拷贝)