poj 3264 Balanced Lineup(查询区间最大值与最小值的差)
来源:互联网 发布:淘宝七天无理由退换货 编辑:程序博客网 时间:2024/06/10 19:51
1.代码:
#include<stdio.h>#include<string.h>#include<math.h>#define Max(a,b) ((a)>(b)?(a):(b))#define Min(a,b) ((a)<(b)?(a):(b))#define N 100000int a[N];int ST1[N][20];int ST2[N][20];int n,q;void make_ST(){ for(int j=1;(1<<j)<=n;j++) { for(int i=1;(i+(1<<j)-1)<=n;i++) { ST1[i][j]=Max(ST1[i][j-1],ST1[i+(1<<(j-1))][j-1]); ST2[i][j]=Min(ST2[i][j-1],ST2[i+(1<<(j-1))][j-1]); } }}int Query(int l,int r){ int k=floor(log((double)(r-l+1))/log((double)(2))); return Max(ST1[l][k],ST1[r-(1<<k)+1][k])-Min(ST2[l][k],ST2[r-(1<<k)+1][k]);}int main(){ while(scanf("%d%d",&n,&q)==2) { for(int i=1;i<=n;i++) { scanf("%d",&a[i]); ST1[i][0]=ST2[i][0]=a[i]; } make_ST(); while(q--) { int l,r; scanf("%d%d",&l,&r); printf("%d\n",Query(l,r)); } } return 0;}
0 0
- poj 3264 Balanced Lineup(查询区间最大值与最小值的差)
- POJ 3264 Balanced Lineup(线段树—求区间最大值与最小值差)
- poj3264 Balanced Lineup(求区间的最大值与最小值之差)
- 【POJ 3264】【RMQ 或者线段树】Balanced Lineup 【查询区间内最大最小值的差】
- hdu3264 Balanced Lineup (RMQ查询最大值和最小值的差)
- [POJ 3264]Balanced Lineup[树状数组查询区间最大最小值]
- POJ 3264 Balanced Lineup 线段树 维护区间最大值和最小值 建树
- poj3264——Balanced Lineup(线段树+区间最大值与最小值)
- POJ 3264 Balanced Lineup 线段树的构建+区间查询
- POJ 3264 Balanced Lineup 查询区间最大最小值 基础线状树水题
- POJ 3264 Balanced Lineup(线段树区间查询)
- poj--3264Balanced Lineup+ST算法求区间最大最小值
- Balanced Lineup(线段树+最大值,最小值)
- POJ 3264 Balanced Lineup (线段树单点更新 区间查询)
- poj(3264)(最大值与最小值之差)
- 线段树求区间最大值与最小值的差
- POJ 3264-Balanced Lineup(线段树:单点更新,区间查询)
- poj 3264 Balanced Lineup(线段树单点修改区间查询)
- 解决在 ArcCatalog为图层添加字段出现致命错误的方法
- CodeForces 200C Football Championship(暴力枚举)
- mysql like语句
- SQL Server数据迁移到MySQL
- Objective-C Runtime 运行时之六:拾遗
- poj 3264 Balanced Lineup(查询区间最大值与最小值的差)
- Android Bigmap的操作(绘制,裁剪)
- hdu 1728 逃离迷宫 (论DFS思想在BFS中的应用)
- JPA环境搭建
- placeholder <>'' a?b:c mysqli
- WIFI学习
- 迷宫问题 经典bfs问题【bfs】
- Sql serer 3个排序的函数
- SAP蓝图架构设计