【传送门:BZOJ5042


简要题意:

  给出n个数,q个询问,每个询问输入opt,l,r,如果opt=1,则输出l到r中的最小值,否则输出最大值


题解:

  直接上ST表,自信一波,结果

  MLE??好吧,离线求,最大最小值用一个数组求

  TLE???好吧,看讨论,询问的范围1000左右,好,缩一波时间

  RE????好吧,不预处理2的次方,直接位运算

  AC??好吧,ok了


参考代码:

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-') f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int m[][];
int Log[];
struct question
{
int l,r,opt,d;
}q[];
int main()
{int n=read(),Q=read();
for(int i=;i<=n;i++)
{
int x=read();
m[][i]=x;
}
Log[]=-;for(int i=;i<=n;i++) Log[i]=Log[i>>]+;
for(int i=;(<<i)<=n&&i<=;i++)
{
for(int j=;j<=n;j++)
{
if(j+(<<i)-<=n)
{
m[i][j]=min(m[i-][j],m[i-][j+(<<(i-))]);
}
else break;
}
}
for(int i=;i<=Q;i++) q[i].opt=read(),q[i].l=read(),q[i].r=read();
for(int i=;i<=Q;i++)
{
int opt=q[i].opt,l=q[i].l,r=q[i].r;
if(q[i].opt==)
{
int t=Log[r-l+];
q[i].d=min(m[t][l],m[t][r-(<<t)+]);
}
}
for(int i=;(<<i)<=n&&i<=;i++)
{
for(int j=;j<=n;j++)
{
if(j+(<<i)-<=n)
{
m[i][j]=max(m[i-][j],m[i-][j+(<<(i-))]);
}
else break;
}
}
for(int i=;i<=Q;i++)
{
int opt=q[i].opt,l=q[i].l,r=q[i].r;
if(q[i].opt==)
{
int t=Log[r-l+];
q[i].d=max(m[t][l],m[t][r-(<<t)+]);
}
}
for(int i=;i<=Q;i++) printf("%d\n",q[i].d);
return ;
}

最新文章

  1. 关于目录路径path
  2. 深入理解脚本化CSS系列第四篇——脚本化样式表
  3. Java的数据类型
  4. 使用原生JS封装Ajax
  5. 关于页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
  6. 新建maven项目
  7. Quartz集群原理及配置应用
  8. 新注册域名greenopen.site,向专业道路进军
  9. 【在线】Actionbar Style Generator:ActionBar风格生成器
  10. 从四大音乐APP首页设计对比分析产品方向
  11. Emacs golang 配置
  12. java中的容器问题
  13. Ubuntu12.10编译openwrt遇到的错误
  14. Objective-C 获取当前执行函数的名称
  15. Linux模式设计系列( 内核与应用关联思考)
  16. C语言基础学习学习前的准备-2
  17. Linux学习笔记——如何使用共享库交叉编译
  18. AXI_DMA IP学习
  19. 潭州课堂25班:Ph201805201 django框架 第十课 GET,POST 请求 文件上传,HttpResponse,cookie (课堂笔记)
  20. [Aaronyang] 写给自己的WPF4.5 笔记9[复杂数据处理三步曲,数据展示ListView泪奔2/3]

热门文章

  1. 为什么要重写toString()方法
  2. Linux内核中进程上下文和中断上下文的理解
  3. 项目复习期总结3:CSS引入方式,凝视,命名规范,背景,行高,文本属性
  4. android选择图片或拍照图片上传到server(包含上传參数)
  5. linux 下的文件搜索、可执行文件搜索
  6. swoole-简单的异步执行
  7. jqGrid冻结列
  8. http请求常出现的状态码
  9. Android 对话框黑色边框的解决
  10. crontab中使用sudo命令的注意