rmq模板题。用st表切一个。

关于st表的详解见我的博客:st表、树状数组与线段树 笔记与思路整理

题目描述

老管家是一个聪明能干的人。他为财主工作了整整10年,财主为了让自已账目更加清楚。要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意。但是由于一些人的挑拨,财主还是对管家产生了怀疑。于是他决定用一种特别的方法来判断管家的忠诚,他把每次的账目按1,2,3…编号,然后不定时的问管家问题,问题是这样的:在a到b号账中最少的一笔是多少?为了让管家没时间作假他总是一次问多个问题。

输入格式

输入中第一行有两个数m,n表示有m(m<=100000)笔账,n表示有n个问题,n<=100000。

第二行为m个数,分别是账目的钱数

后面n行分别是n个问题,每行有2个数字说明开始结束的账目编号。

输出格式

输出文件中为每个问题的答案。具体查看样例。

输入输出样例

输入 #1

10 3
1 2 3 4 5 6 7 8 9 10
2 7
3 9
1 10
输出 #1

2 3 1

裸rmq。M长度的数组,N次请求,给出左右端点求最小值。

#include <bits/stdc++.h>
using namespace std;
int arr[], st[][];
int M, N;
void init(){
for(int i=; i<=M; i++){
st[i][] = arr[i];
}
for(int j=; j<=log2(M); j++){
for(int i=; i<=M; i++){
if(i + ( << (j-)) < M) st[i][j] = min(st[i][j-], st[i + ( << (j-))][j-]);
}
}
}
int query(int l, int r){
int len = log2(r - l + );
return min(st[l][len], st[r - ( << len) + ][len]);
}
int main(){
// freopen(".in", "r", stdin);
// freopen(".out", "w", stdout);
scanf("%d%d", &M, &N);
for(int i=; i<=M; i++){
scanf("%d", &arr[i]);
}
int l, r;
init();
while(N--){
scanf("%d%d", &l, &r);
printf("%d ", query(l, r));
}
return ;
}

Luogu P1816 忠诚的更多相关文章

  1. 【luogu P1816 忠诚】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1816 用st表来解决rmq问题. 表示同时培训学的st表,然后我就忘得差不多了,在这里推荐一篇blog 大佬 ...

  2. 洛谷P1816 忠诚

    P1816 忠诚 569通过 1.5K提交 题目提供者该用户不存在 标签云端 难度普及+/提高 时空限制1s / 128MB 提交  讨论  题解 最新讨论更多讨论 主席树的常数貌似大于线段树… TL ...

  3. 洛谷 P1816 忠诚 题解

    P1816 忠诚 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财 ...

  4. 洛谷P1816 忠诚 题解

    洛谷P1816 忠诚 题解 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人 ...

  5. 【模板】ST表 洛谷P1816 忠诚

    P1816 忠诚 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于 管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨, ...

  6. luogu P1816 【忠诚】

    话说许多dalao都采取线段树A题可本蒟蒻不会啊, 暴力的我想出了暴力解法(快排) #include<cstdio> #include<algorithm> using nam ...

  7. P1816 忠诚 倍增

    链接:https://www.luogu.org/problem/show?pid=1816 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k ...

  8. 洛谷——P1816 忠诚

    https://www.luogu.org/problem/show?pid=1816#sub 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记 ...

  9. P1816 忠诚

    题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...

随机推荐

  1. Java中的static(1)【持续更新】——关于Eclipse的No enclosing instance of type ... 错误的理解和改正

    No enclosing instance of type SomeClass is accessible. Must qualify the allocation with an enclosing ...

  2. IDEA 学习笔记之 Spark/SBT项目开发

    Spark/SBT项目开发: 下载Scala SDK 下载SBT 配置IDEA SBT:(如果不配置,就会重新下载SBT, 非常慢,因为以前我已经下过了,所以要配置为过去使用的SBT) 新建立SBT项 ...

  3. Springboot之初入江湖

    Hello,各位小伙伴大家好,我是小栈君. 今天的分享主题是关于Springboot主题分享,其实在写这个系列主题之前有想过一些关于分享技术的顺序问题,因为我在创建"IT干货栈"这 ...

  4. WebGL简易教程(十):光照

    目录 1. 概述 2. 原理 2.1. 光源类型 2.2. 反射类型 2.2.1. 环境反射(enviroment/ambient reflection) 2.2.2. 漫反射(diffuse ref ...

  5. 终端-Linux命令之非交互SSH密码验证-Sshpass

    Sshpass是使用SSH所谓的"交互式键盘密码身份验证"以非交互方式执行密码身份验证的工具 通俗来说就是 使用ssh密码登录 是需要在连接时手动输入密码的,没办法明文连接,如下图 ...

  6. python编程基础之十四

    列表的增加元素 l1 = [10, 20, 30] l1.append(40)  # 末尾追加一个值为40的元素 l1.extend([50, 60])  # 末尾追加一系列元素,extend + 可 ...

  7. Java中NIO及基础实现

    NIO:同步非阻塞IO 来源:BIO是同步阻塞IO操作,当线程在处理任务时,另一方会阻塞着等待该线程的执行完毕,为了提高效率,,JDK1.4后,引入NIO来提升数据的通讯性能 NIO中采用Reacto ...

  8. MySQL复制从库建立-xtracebackup方式

    Percona XtraBackup工具提供了一种在系统运行时执行MySQL数据热备份的方法. Percona XtraBackup在事务系统上执行联机非阻塞,紧密压缩,高度安全的完整备份,因此在计划 ...

  9. 设置Linux支持中文

    1.首先在command输入locale,可以看到Linux下默认的系统语言的是英文 2.vim ~/.bashrc打开这个文件,该文件夹相当于系统配置文件 3.打开后,将后三行命令输入到文档中,最后 ...

  10. MySQL时间盲注五种延时方法 (PWNHUB 非预期解)

    转自cdxy师傅:https://www.cdxy.me/?p=789 PWNHUB 一道盲注题过滤了常规的sleep和benchmark函数,引发对时间盲注中延时方法的思考. 延时函数 SLEEP ...