1. 延绵的山峰

    ★★☆ 输入文件:climb.in 输出文件:climb.out 简单对比

    时间限制:1 s 内存限制:512 MB

    问题描述

    有一座延绵不断、跌宕起伏的山,最低处海拔为0,最高处海拔不超过8848米,从这座山的一端走到另一端的过程中,每走1米海拔就升高或降低1米。有Q个登山队计划在这座山的不同区段登山,当他们攀到各自区段的最高峰时,就会插上队旗。请你写一个程序找出他们插旗的高度。

    输入文件

    第1行,一个整数N(N<=10^6),表示山两端的跨度。

    接下来N+1行,每行一个非负整数Hi,表示该位置的海拔高度,其中H0=Hn=0。

    然后是一个正整数Q(Q<=7000),表示登山队的数量。

    接下来Q行,每行两个数Ai, Bi,表示第i个登山队攀爬的区段[Ai,Bi],其中0<=Ai<=Bi<=N。

    输出文件

    Q行,每行为一个整数,表示第i个登山队插旗的高度。

    样例输入

    10

    0

    1

    2

    3

    2

    3

    4

    3

    2

    1

    0

    5

    0 10

    2 4

    3 7

    7 9

    8 8

    样例输出

    4

    3

    4

    3

    2
/*
还是裸题.
维护max.
不过第一次RE了.
原因是line :for(int i=0;i<=n;i++)
然后改成了for(int i=0;i<=n-mi[j-1];i++).
因为[n-mi[j-1],n]这一块对答案是没有贡献的.
这样的话就算上n后面的贡献了.
要是求min就尴尬了.
*/
#include<iostream>
#include<cstdio>
#include<cmath>
#define MAXN 1000001
#define D 21
using namespace std;
int n,m,a[MAXN],f[MAXN][D+5],mi[D+5];
int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();
return x*f;
}
void slove()
{
int k=log(n)/log(2)+1;
for(int j=1;j<=k;j++)
for(int i=0;i<=n-mi[j]+1;i++)//1 R.
f[i][j]=max(f[i][j-1],f[i+mi[j-1]][j-1]);
return ;
}
int query(int l,int r)
{
int k=log(r-l+1)/log(2);
return max(f[l][k],f[r-mi[k]+1][k]);
}
int main()
{
freopen("climb.in","r",stdin);
freopen("climb.out","w",stdout);
int x,y;
n=read();mi[0]=1;
for(int i=1;i<=D;i++) mi[i]=mi[i-1]<<1;
for(int i=0;i<=n;i++) a[i]=read(),f[i][0]=a[i];
slove();m=read();
while(m--)
{
x=read(),y=read();
printf("%d\n",query(x,y));
}
return 0;
}

Cogs 58. 延绵的山峰(st表)的更多相关文章

  1. CF1039E Summer Oenothera Exhibition 根号分治,LCT,ST表

    CF1039E Summer Oenothera Exhibition LG传送门 根号分治好题. 可以先看我的根号分治总结. 题意就是给出长度为\(n\)的区间和\(q\)组询问以及一个\(w\), ...

  2. POJ_2452 Sticks Problem 【ST表 + 二分】

    一.题目 Sticks Problem 二.分析 对于$i$和$j$,并没有很好的方法能同时将他们两找到最优值,所以考虑固定左端点$i$. 固定左端点后,根据题意,$a[i]$是最小值,那么现在的问题 ...

  3. POJ3693 Maximum repetition substring [后缀数组 ST表]

    Maximum repetition substring Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9458   Acc ...

  4. 【BZOJ-2006】超级钢琴 ST表 + 堆 (一类经典问题)

    2006: [NOI2010]超级钢琴 Time Limit: 20 Sec  Memory Limit: 552 MBSubmit: 2473  Solved: 1211[Submit][Statu ...

  5. 【BZOJ-3956】Count ST表 + 单调栈

    3956: Count Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 173  Solved: 99[Submit][Status][Discuss] ...

  6. 【BZOJ-4569】萌萌哒 ST表 + 并查集

    4569: [Scoi2016]萌萌哒 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 459  Solved: 209[Submit][Status] ...

  7. 【BZOJ-4310】跳蚤 后缀数组 + ST表 + 二分

    4310: 跳蚤 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 180  Solved: 83[Submit][Status][Discuss] De ...

  8. HDU5726 GCD(二分 + ST表)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5726 Description Give you a sequence of N(N≤100, ...

  9. Hdu 5289-Assignment 贪心,ST表

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=5289 Assignment Time Limit: 4000/2000 MS (Java/Others) ...

随机推荐

  1. apache - storm - Setting Up a Development Environment

    Installing a Storm release locally If you want to be able to submit topologies to a remote cluster f ...

  2. nodejs 对 png 图片的像素级别处理

    使用node对图片的像素进行处理 这里使用常见的图片灰度处理为例子: 用到了 pngjs 的 npm 库,这个库可以将 png 的图片文件 Buffer 流,转换为 r g b a 为 255 的像素 ...

  3. Docker多阶段构建实战(multi-stage builds)

    在编写Dockerfile构建docker镜像时,常遇到以下问题: RUN命令会让镜像新增layer,导致镜像变大,虽然通过&&连接多个命令能缓解此问题,但如果命令之间用到docker ...

  4. 恺撒密码 I

    恺撒密码 I ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭ ...

  5. springboot启动流程(二)SpringApplication run方法核心逻辑

    所有文章 https://www.cnblogs.com/lay2017/p/11478237.html run方法逻辑 在上一篇文章中,我们看到SpringApplication的静态方法最终是去构 ...

  6. 使用 keytool 生成安卓应用程序签名

    下载 keytool jar包: 解压jar包到固定目录 如: cd  /Library/Java/JavaVirtualMachines/ 进入到jar包目录: cd /Library/Java/J ...

  7. 软件打包 Inno

    官网 http://www.jrsoftware.org/ 新建 点击工具栏第一项"新建".输入产品的名称.版本号.公司网址等信息 添加应用程序文件 应用程序图标 应用程序文档 许 ...

  8. ASE19团队项目beta阶段Backend组 scrum7 记录

    本次会议于12月13日,19:30在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Hao Wang, Lihao Ran, Xin Kang 请假人员:Zhikai Chen 每 ...

  9. 数组和集合转化 array与list

    package com.chen.test; import java.io.Serializable;import java.util.Arrays;import java.util.List;imp ...

  10. Netty4实现JTT809对接

    网上的使用的netty版本过老,最近自己接触到这一块,重新写了一个 服务器流程 1,判定报文起始和结束标识 ,2去掉头尾标识进行转义,3,去掉CRC码进行CRC计算,4读取报文头,(5,如果加密则解密 ...