玲珑oj 1128 RMQ模板
Time Limit:3s Memory Limit:128MByte
Submissions:380Solved:118
给你两个序列A,B。每个序列有N个元素,我们定义第i个位置的咸鱼值为min(A[i],A[i-1]…A[i-B[i]+1])*max(A[i],A[i-1]….A[i-B[i]+1]).。
现在咸鱼王想知道所有的咸鱼值,于是抓住了你,让你回答这道题。
你能回答他吗?
第二行包括N个整数,表示为A[i] (|A[i]| <= 10^9)
第三行包括N个整数,表示为B[i] ( 1 <= B[i] <= i)
1 2 3 4 5
1 2 1 2 3
2
9
12
15
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define MAXN ((100000<<2)+15)
int A[],B;
int d[][][];
void rmq(int n)
{
for(int i=;i<n;++i) d[][i][]=d[][i][]=A[i];
for(int j=;(<<j)<=n;++j){
for(int i=;i+(<<j)-<n;++i){
d[][i][j]=min(d[][i][j-],d[][i+(<<(j-))][j-]);
d[][i][j]=max(d[][i][j-],d[][i+(<<(j-))][j-]);
}
}
}
int RMQ(int L,int R,int x)
{
int k=;
while((<<(k+))<=R-L+) k++;
if(x==) return min(d[][L][k],d[][R-(<<k)+][k]);
else return max(d[][L][k],d[][R-(<<k)+][k]);
}
int main()
{
int t,n,m,i,j,k,opt,l,r,v;
scanf("%d",&n);
for(i=;i<n;++i) scanf("%d",&A[i]);
rmq(n);
for(i=;i<n;++i) {
scanf("%d",&B);
printf("%lld\n",(LL)RMQ(i+-B,i,)*RMQ(i+-B,i,));
}
return ;
}
玲珑oj 1128 RMQ模板的更多相关文章
- Zeratul的完美区间(线段树||RMQ模板题)
原题大意:原题链接 给定元素无重复数组,查询给定区间内元素是否连续 解体思路:由于无重复元素,所以如果区间内元素连续,则该区间内的最大值和最小值之差应该等于区间长度(r-l) 解法一:线段树(模板题) ...
- Poj 3264 Balanced Lineup RMQ模板
题目链接: Poj 3264 Balanced Lineup 题目描述: 给出一个n个数的序列,有q个查询,每次查询区间[l, r]内的最大值与最小值的绝对值. 解题思路: 很模板的RMQ模板题,在这 ...
- POJ 3264:Balanced Lineup(RMQ模板题)
http://poj.org/problem?id=3264 题意:给出n个数,还有q个询问,询问[l,r]区间里面最大值和最小值的差值. 思路:RMQ模板题,开两个数组维护最大值和最小值就行. #i ...
- POJ3264 Balanced Lineup [RMQ模板]
题意:有n头牛,输入他们的身高,求某区间身高的极值的差(max-min), 用RMQ模板,同时构造求极大值和极小值的两个数组. //poj3264 #include <iostream> ...
- RMQ模板
RMQ:范围最小值问题.给出一个n个元素的数组A1,A2,...,An,设计一个数据结构支持查询操作Query(L,R):计算min{AL,AL+1,...,AR}. 每次用一个循环来求最小值显然不够 ...
- 二维RMQ模板
int main(){ ; i <= n; i++) ; j <= m; j++) { scanf("%d", &val[i][j]); dp[i][j][][ ...
- LCA上的RMQ模板算法
How far away ? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 倍增算法总结 ( 含RMQ模板)
部分题目来自<算法竞赛设计进阶> 问题 给定一个长度为n的数列A,有m个询问,每次给定一个整数T,求出最大的k,满足a[1],a[2]……a[k]的和小于等于T(不会打sigm ...
- RMQ 模板题 poj 3264
题目:点这里 题意:给一个长度n的数列,然后又Q个询问,问L 到R 中最大值与最小值的差. 分析:RMQ 的模板题. 代码: #include<stdio.h> #include& ...
随机推荐
- 国内NLP的那些人那些会
统计学和语言学专家都列在一起了,没有区分.1,黄昌宁,1937年生于广东,1955年考入清华大学电机系,1961年毕业并留校任教至博士生导师, 1983-1984年赴美国耶鲁大学进修,1986-198 ...
- MySql—模糊查询
实例: SQL模糊查询,使用like比较关键字,加上SQL里的通配符,请参考以下: 1.LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden). 2.LIKE '%in ...
- ElasticSearch recovery过程源码分析
[ES版本] 5.5.0 [分析过程] 找到Recovery有6种状态 public class RecoveryState implements ToXContent, Streamable { p ...
- $ 一步一步学Matlab(3)——Matlab中的数据类型
小学时候我们就知道,数学中有自然数.整数.分数.小数等等很多种类型的数.到了中学,我们又发现了其实还有无理数.复数这些有些特殊的数.到了大学学了高等数学之后,我们又知道了其实还存在着无穷大.无穷小这样 ...
- linux 登录数据库
-h 地址 (例如:127.0.0.1,localhost) mysql -h 127.0.0.1 -u root -p
- 20145313Java第五次实验
实验内容 网络编程TCP代码的结对完成,一人服务器,一人客户端,进行数据传输. 结伴对象:20145313卢鑫 实验步骤 本次实验中,需要两台电脑互联.一台电脑开启无线网,充当客户端,另一台连入局域网 ...
- openwrt中的append-ubi定义在哪里
include/image-commands.mk 定义如下: define Build/append-ubi sh $(TOPDIR)/scripts/ubinize-image.sh \ $(if ...
- git gc内存错误的解决方案
Auto packing the repository for optimum performance. You may alsorun "git gc" manually. Se ...
- spark SQL学习(认识spark SQL)
spark SQL初步认识 spark SQL是spark的一个模块,主要用于进行结构化数据的处理.它提供的最核心的编程抽象就是DataFrame. DataFrame:它可以根据很多源进行构建,包括 ...
- 【cs231n】图像分类笔记
前言 首先声明,以下内容绝大部分转自知乎智能单元,他们将官方学习笔记进行了很专业的翻译,在此我会直接copy他们翻译的笔记,有些地方会用红字写自己的笔记,本文只是作为自己的学习笔记.本文内容官网链接: ...