BZOJ5042: LWD的分科岛
【传送门: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 ;
}
BZOJ5042: LWD的分科岛的更多相关文章
- BZOJ 3894: 文理分科 [最小割]
3894: 文理分科 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 674 Solved: 392[Submit][Status][Discuss] ...
- Bzoj3894 文理分科
Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 667 Solved: 389 Description 文理分科是一件很纠结的事情!(虽然看到这个题 ...
- ArcEngine 岛状多边形内部环的获取
ArcEngine岛状多边形获取其内部环 查阅了帮助文档相关接口,内部环的获方法get_InteriorRingBag() 需要外部环作为参数.而外部环可以直接通过ExteriorRingBag属性获 ...
- 屠蛟之路_蛟灵岛战役(上)_SixthDay
乘风破浪,屠蛟少年们终于到达beta怪蛟大boss的老巢--蛟灵岛. 这是一座孤立在东海深处的荒岛,岛上黑烟缭绕.瘴气重重,屠蛟少年们一登岛,就感受到浓浓的腥味和妖气. 果然,再小心翼翼,走两步居然陷 ...
- AC日记——逃出克隆岛 (bfs)
2059 逃出克隆岛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description oi小组的yh酷爱玩魔兽rpg,每天都 ...
- LeetCode Number of Islands 岛的数量(DFS,BFS)
题意:0代表水,1代表陆地,那么被水围起来的就是岛了,给一个01矩阵,问有多少个岛? 思路:DFS还是比较短,实现了一下.如果一个点已经被遍历过了,那就将其置为0就行了,不要去搜0的. class S ...
- BZOJ 1487 无归岛
Description Neverland是个神奇的地方,它由一些岛屿环形排列组成,每个岛上都生活着之中与众不同的物种.但是这些物种都有一个共同的生活习性:对于同一个岛上的任意两个生物,他们有且仅有一 ...
- 逃出克隆岛 (codevs 2059)
较普通的走迷宫的题 传送门 :codevs 2059 逃出克隆岛 思路 :BFS 即可 PS :传送门 不必重复使用 #include <iostream> #include < ...
- bzoj1487 [HNOI2009]无归岛
Description Neverland是个神奇的地方,它由一些岛屿环形排列组成,每个岛上都生活着之中与众不同的物种.但是这些物种都有一个共同的生活习性:对于同一个岛 上的任意两个生物,他们有且仅有 ...
随机推荐
- if判断语句
6)if判断语句 if ... then else end if; if ... then elsif ... then elsif ... then else ...
- Ubuntu 15.10 安装Qt5.5.1
本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50300447 本人使用的ubuntu系 ...
- ASP.NET-EF基础知识
定义 asp.net Entity Framework是微软以ADO.NET为基础发展出来的对象关系对应(OR Mapping)解决方案. 三种EF工作模式(自己理解的) 从数据库表创建类 从类创 ...
- C#-MSMQ安装及配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- githubclient配置方法简述
/*********************************************************** * Author : Samson * Date : 08/15/2015 * ...
- 单片机: EEPROM和串口通信
名称:IIC协议 EEPROM24c02 通过串口通信存数读取数据 内容:此程序用于检測EEPROM性能,測试方法例如以下:写入24c02一个数据,然后在内存中改变这些数据. 掉电后主内存将失去这些信 ...
- Java8内置的四大核心函数式接口
package java_8; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import j ...
- MYSQL主从复制搭建及切换操作(GTID与传统)
结构如下: MYSQL主从复制方式有默认的复制方式异步复制,5.5版本之后半同步复制,5.6版本之后新增GTID复制,包括5.7版本的多源复制. MYSQL版本:5.7.20 操作系统版本:linux ...
- Struts1、Struts2、Hibernate、Spring框架工作原理介绍
Struts1工作原理 Struts1工作原理图 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控 ...
- @RequestMapping[转]
转自 http://www.cnblogs.com/qq78292959/p/3760560.html#undefined 引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST. ...