看了两个小时RMQ并位运算,对二进制勉勉强强有了个初步了解,不能说精通(可能今年CSP前都做不到精通),但是记熟板子做做题还是没有问题的

以下是正式题解,相信你看过了题目,我介绍的是ST表的做法(很简单)


—题目网址点这里—

如果你不想切出去也可以直接往下看(想看题解或代码往下翻翻)

(来源洛谷(截图)


分析

这题是真的完全没有掩饰的区间最值问题(RMQ),刚学的话拿来练板子还行(?),就是个模板题啦

这题就是板子改个大于小于的程度也搞不清为什么它是个绿题(模板题是黄题)

如果你学过ST表这题会又简单又好打,如果没有学过(就去学啊很重要的)

不会ST表打线段树当然也可以,但是线段树很长啊(发出蒟蒻的声音)

RMQ的模板在这,没学过可以去题解试试学一学,这里就不过多赘述

以及宣传姐妹博客她写的模板也可以去康康

或者往下看我的代码注释(就当练习代码阅读能力)

代码

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int n,m,a[],f[][];
inline int read()
{
int x=;
char c=getchar();
while (c>''||c<'') c=getchar();
do
{
x=x*+c-;
c=getchar();
}while(c<=''&&c>='');
return x;
} //快读,优化常数从我做起
inline void rmq()
{
for (int j=; (<<j)<=m; j++)
for (int i=; i+(<<j)-<=m; i++)
f[i][j]=min(f[i][j-],f[i+(<<(j-))][j-]);
}//核心预处理,运用DP和二进制
int main()
{
m=read(); n=read();
for (int i=; i<=m; i++)
{
a[i]=read();
f[i][]=a[i];
//初始化
}
rmq();
int l,r;
for (int i=; i<=n; i++)
{
l=read(); r=read();
int k=floor(log(r-l+)/log());
//2^k=r-l+1
printf("%d ",min(f[l][k],f[r-(<<k)+][k]));
//这个地方用COUT会TLE!!凉凉 !!!
}
return ;//本命生日防我自己偷窥
}

好的就是这些

惯例

ありがとうございます

【洛谷P1816】忠诚——ST表做法的更多相关文章

  1. 洛谷 P1816 忠诚 ST函数

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

  2. 洛谷P1816 忠诚 题解

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

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

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

  4. 洛谷 P1816 忠诚 题解

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

  5. 【洛谷】【st表+模拟】P1311 选择客栈

    [题目描述:] 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖 ...

  6. 洛谷P1816 忠诚

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

  7. 洛谷 P1816 忠诚

    https://www.luogu.org/problemnew/show/1816 st表模板 #include<cstdio> #include<algorithm> us ...

  8. 洛谷——P1816 忠诚

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

  9. 洛谷 P1816 忠诚题解

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

随机推荐

  1. codevs 3022 西天收费站 x

                         题目描述 Description 唐僧师徒四人终于发现西天就在眼前,但猴子突然发现前面有n个收费站(如来佛太可恶),在每个收费站用不同的方式要交的钱不同,输入 ...

  2. 2019牛客暑期多校训练营(第二场)D bitset

    题意 给一个n个结点的带点权的图,找到第k小的团的权值 分析 用bitset表示团的状态,一个结点必须和团里的每个结点都连边才能加进去,所以可以直接用\(\&\)运算来判断一个结点是否能加进去 ...

  3. 《SVG精髓》笔记(二)

    3. 文档结构 在SVG中使用样式(四种方式,可以联想对照HTML样式方法) 内联样式, 直接在标签里设置style属性 <circle cx='20' cy='20' r='10' style ...

  4. leetcode题目11.盛最多水的容器(中等)

    题目描述: 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找出其 ...

  5. ccf 201703-4 地铁修建(95)(并查集)

    ccf 201703-4 地铁修建(95) 使用并查集,将路径按照耗时升序排列,依次加入路径,直到1和n连通,这时加入的最后一条路径,就是所需要修建的时间最长的路径. #include<iost ...

  6. dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib

    dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib Table of Contents 1. 启动时报错 ...

  7. WPF 键盘全局接收消息

    1.========================================================================== 在c#中怎样禁用鼠标左键的使用,其实我们可以通 ...

  8. http常见状态码分析

    200:这个是最常见的http状态码,表示服务器已经成功接受请求,并将返回客户端所请求的最终结果 301:客户端请求的网页已经永久移动到新的位置,当链接发生变化时,返回301代码告诉客户端链接的变化, ...

  9. DELPHI 通用的数据记录复制过程

    //表名,关键字段名,单条内容的SQL语句,产生新记录的值 function Tfrmdmmain.CopyTbale(const tablename, fileldname, swhere, new ...

  10. shader飞线改进版

    项目github地址:https://github.com/ecojust/flyline 前面写过一个飞线(基于THREE.Line进行的颜色变化),只是简单地将可视区片元颜色的alpha通道值设为 ...