【洛谷P1816】忠诚——ST表做法
看了两个小时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表做法的更多相关文章
- 洛谷 P1816 忠诚 ST函数
题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...
- 洛谷P1816 忠诚 题解
洛谷P1816 忠诚 题解 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人 ...
- 【模板】ST表 洛谷P1816 忠诚
P1816 忠诚 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于 管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨, ...
- 洛谷 P1816 忠诚 题解
P1816 忠诚 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财 ...
- 【洛谷】【st表+模拟】P1311 选择客栈
[题目描述:] 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖 ...
- 洛谷P1816 忠诚
P1816 忠诚 569通过 1.5K提交 题目提供者该用户不存在 标签云端 难度普及+/提高 时空限制1s / 128MB 提交 讨论 题解 最新讨论更多讨论 主席树的常数貌似大于线段树… TL ...
- 洛谷 P1816 忠诚
https://www.luogu.org/problemnew/show/1816 st表模板 #include<cstdio> #include<algorithm> us ...
- 洛谷——P1816 忠诚
https://www.luogu.org/problem/show?pid=1816#sub 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记 ...
- 洛谷 P1816 忠诚题解
题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...
随机推荐
- bootstrap列表组的使用
<ul class="list-group"> <li class="list-group-item"> <div class=& ...
- luogu4212
P4212 外太空旅行 题目描述 在人类的触角伸向银河系的边缘之际,普通人上太空旅行已经变得稀松平常了.某理科试验班有n个人,现在班主任要从中选出尽量多的人去参加一次太空旅行活动. 可是n名同学并不是 ...
- AtCoder AGC031D A Sequence of Permutations (群论、置换快速幂)
题目链接 https://atcoder.jp/contests/agc031/tasks/agc031_d 题解 这居然真的是个找规律神题... 首先要明白置换的一些基本定义,置换\(p\)和\(q ...
- PTA 笛卡尔树
笛卡尔树 (25 分) 笛卡尔树是一种特殊的二叉树,其结点包含两个关键字K1和K2.首先笛卡尔树是关于K1的二叉搜索树,即结点左子树的所有K1值都比该结点的K1值小,右子树则大.其次所有结点的K2关键 ...
- Inter IPP & Opencv + codeblocks 在centos 环境下的配置
一.先安装codeblocks wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noar ...
- python中的fstring的 !r,!a,!s
首先是fstring的结构 f ' <text> { <expression> <optional !s, !r, or !a> <optional : fo ...
- TCP被动打开 之 第二次握手-发送SYN+ACK
假定客户端执行主动打开,发送syn包到服务器,服务器执行完该包的第一次握手操作后,调用af_ops->send_synack向客户端发送syn+ack包,该回调实际调用tcp_v4_send_s ...
- 从输入url到页面加载完成都发生了什么
https://zhuanlan.zhihu.com/p/23155051 参考 一个http请求的过程 简要介绍一下一个http请求的网络传输过程: DNS Lookup先获得URL对应的IP地址( ...
- tensorflow源码分析——BasicLSTMCell
BasicLSTMCell 是最简单的LSTMCell,源码位于:/tensorflow/contrib/rnn/python/ops/core_rnn_cell_impl.py.BasicLSTMC ...
- vscode+python+flake8+cmder配置
{ "window.zoomLevel": 0, "[python]": {}, "kite.showWelcomeNotif ...


