st表

我还不会st表

f[i][j]表示[i,i+2^j)区间的最值

构造就像lca一样f[i][j]=f[i][j-1] f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]) 表示[i+2^(j-1)) [i+2^(j-1), i+2^j)

然后查询找出一个2的幂,从头和尾覆盖查询区间,max(mx[l][x],mx[r-2^x+1][x]) 这样覆盖了整个区间

#include<bits/stdc++.h>
using namespace std;
const int N = ;
int n, q;
int mx[N][], mn[N][], a[N];
void query(int l, int r)
{
int x = log(r - l + ) / log();
int x1 = max(mx[l][x], mx[r - ( << x) + ][x]);
int x2 = min(mn[l][x], mn[r - ( << x) + ][x]);
printf("%d\n", x1 - x2);
}
int main()
{
scanf("%d%d", &n, &q);
for(int i = ; i <= n; ++i)
{
int x;
scanf("%d", &a[i]);
mx[i][] = a[i];
mn[i][] = a[i];
}
for(int i = ; i <= ; ++i)
for(int j = n; j; --j)
{
mn[j][i] = mn[j][i - ];
mx[j][i] = mx[j][i - ];
if(j + ( << (i - )) <= n)
{
mx[j][i] = max(mx[j][i], mx[j + ( << (i - ))][i - ]);
mn[j][i] = min(mn[j][i], mn[j + ( << (i - ))][i - ]);
}
}
while(q--)
{
int l, r;
scanf("%d%d", &l, &r);
query(l, r);
}
return ;
}

bzoj1699的更多相关文章

  1. bzoj1699[Usaco2007 Jan]Balanced Lineup排队*&bzoj1636[Usaco2007 Jan]Balanced Lineup*

    bzoj1699[Usaco2007 Jan]Balanced Lineup排队 bzoj1636[Usaco2007 Jan]Balanced Lineup 题意: 询问区间最大值减区间最小值的差. ...

  2. BZOJ-1699 Balanced Lineup 线段树区间最大差值

    Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 41548 Accepted: 19514 Cas ...

  3. BZOJ1699: [Usaco2007 Jan]Balanced Lineup排队

    1699: [Usaco2007 Jan]Balanced Lineup排队 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 933  Solved: 56 ...

  4. BZOJ1699: [Usaco2007 Jan]Balanced Lineup排队 - 线段树

    description 查询区间最大和最小 题解 线段树 愉悦身心啊 代码 #include<cstring> #include<cstdio> #include<alg ...

  5. 【数据结构】bzoj1636/bzoj1699排队

    Description 每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置 ...

  6. BZOJ第7页养成计划

    嗯,用这篇博客当一个目录,方便自己和学弟(妹?)们查阅.不定期更新. BZOJ1600   BZOJ1601   BZOJ1602   BZOJ1603   BZOJ1604   BZOJ1605   ...

  7. [转载]hzwer的bzoj题单

    counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ120 ...

  8. bzoj Usaco补完计划(优先级 Gold>Silver>资格赛)

    听说KPM初二暑假就补完了啊%%% 先刷Gold再刷Silver(因为目测没那么多时间刷Silver,方便以后TJ2333(雾 按AC数降序刷 ---------------------------- ...

  9. 数据结构:ST表

    BZOJ1699 在经历了树套树和主席树的洗礼之后,所有的数据结构都显得格外地亲切,和自然.. ST算法能够实现O(nlogn)的预处理的情况下完成O(1)的区间最值查询 虽然这要求区间是静态的,也就 ...

随机推荐

  1. codeforces_734C_二分

    C. Anton and Making Potions time limit per test 4 seconds memory limit per test 256 megabytes input ...

  2. Ubuntu 常用解压与压缩命令

    参考 https://blog.csdn.net/songbinxu/article/details/80435665 示例: 把/home/wangju/gitlab/automationTest目 ...

  3. ES6 中set的用法

  4. SSHFS使用笔记

    在写树莓派集群项目的时候,发现如果在树莓派上维护的代码需要非常费力才能跟本地项目代码同步,因此打算将Server端和Client端代码分开,树莓派上的Client端代码远程挂载到本地,这样做比之前要更 ...

  5. 原来PHP对象比数组用更少的内存

    一直以为php的数组更节省内存,从来没有测试过,今天因为要读取一个大配置文件作为pool.做了一次测试: 得出结论是 使用对象保存数据更好,花费的内存是数组array的1/4. 测试代码 class ...

  6. c# 异步执行

    c#异步执行 Action logAction = () => {////执行的操作 }; logAction.BeginInvoke(null, null);

  7. JSTL 实现 为Select赋多个值

    需要注意需要在.jsp文件中引入相应的类库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core ...

  8. mac上的svn命令

    Mac 终端添加代码到SVN从SVN拉取代码步骤:1.cd /Users/指定路径(本地路径)2.svn checkout https://xxx.xxx.xx/svn/project(服务器路径) ...

  9. CVE-2014-6271 漏洞告警

    原理:BASH除了可以将shell变量导出为环境变量,还可以将shell函数导出为环境变量!当前版本的bash通过以函数名作为环境变量名,以“(){”开头的字串作为环境变量的值来将函数定义导出为环境变 ...

  10. Docker在Windows 7下安装

    前言&一些资料: Docker之父:Solomon Hykes Docker生日:2013年3月 Docker历史小故事 1.下载地址:(daocloud是一个中国的docker服务商,知不知 ...