洛谷 P2251 质量检测(st表)
P2251 质量检测
题目提供者ws_ly
标签
难度 普及/提高-
题目描述
为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, … Am},以及第2至第M + 1件的Q[m + 1], Q[m + 2] … 最后统计第N - M + 1至第N件的Q[n]。根据Q再做进一步评估。
请你尽快求出Q序列。
输入输出格式
输入格式:
输入共两行。
第一行共两个数N、M,由空格隔开。含义如前述。
第二行共N个数,表示N件产品的质量。
输出格式:
输出共N - M + 1行。
第1至N - M + 1行每行一个数,第i行的数Q[i + M - 1]。含义如前述。
输入输出样例
输入样例#1:
10 4
16 5 6 9 5 13 14 20 8 12
输出样例#1:
5
5
5
5
5
8
8
说明
[数据范围]
30%的数据,N <= 1000
100%的数据,N <= 100000
100%的数据,M <= N, A <= 1 000 000
/*
ST表裸题.
今天看了看度娘百科发现这个东西比较简单
后悔之前没学~
自己打了一遍.
维护最小值.
f[i][j]表示[i,i+(2^j)-1]的min.
然后dp推一下.
询问直接找断点区间覆盖思想.
(so也能搞gcd?不明觉厉).
复杂度O(nlogn+m).
*/
#include<iostream>
#include<cstdio>
#include<cmath>
#define MAXN 1000001
#define D 21
using namespace std;
int n,m,a[MAXN],f[MAXN][D+5],mi[D+5];
int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();
return x*f;
}
void slove()
{
int k=log(n)/log(2)+1;
for(int j=1;j<=k;j++)
for(int i=1;i<=n-mi[j-1];i++)
f[i][j]=min(f[i][j-1],f[i+mi[j-1]][j-1]);
return ;
}
int query(int l,int r)
{
int k=log(r-l+1)/log(2);
return min(f[l][k],f[r-mi[k]+1][k]);
}
int main()
{
n=read(),m=read();mi[0]=1;
for(int i=1;i<=D;i++) mi[i]=mi[i-1]<<1;
for(int i=1;i<=n;i++) a[i]=read(),f[i][0]=a[i];
slove();
for(int i=1;i<=n-m+1;i++)
{
int j=m+i-1;
printf("%d\n",query(i,j));
}
return 0;
}
洛谷 P2251 质量检测(st表)的更多相关文章
- 洛谷 P2251 质量检测 题解
P2251 质量检测 题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, ...
- P2251 质量检测(ST表)
P2251 质量检测 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... ...
- 洛谷 P2251 质量检测
题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am} ...
- 洛谷—— P2251 质量检测
https://www.luogu.org/problemnew/show/P2251 题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后 ...
- 洛谷P2251 质量检测
题目背景 无 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... Am} ...
- 【洛谷P1816】忠诚——ST表做法
看了两个小时RMQ并位运算,对二进制勉勉强强有了个初步了解,不能说精通(可能今年CSP前都做不到精通),但是记熟板子做做题还是没有问题的 以下是正式题解,相信你看过了题目,我介绍的是ST表的做法(很简 ...
- Luogu2251 质量检测 (ST表)
我怎么开始划水了... #include <iostream> #include <cstdio> #include <cstring> #include < ...
- 洛谷P2251 【质量检测】
无意中刷st表题看到的题目(抄模板),一看到题目,,,没想用st表,直接莫队?????跑起来也不是特别慢... 这里用flag数组记录出现次数,set维护最小值,用的时候直接取头部. 代码也很短 #i ...
- 【luogu P2251 质量检测】 题解
也是一道ST表的板子题,很裸的RMQ问题,只需要在查询区间时处理一下下就好啦~ #include <cstdio> #include <algorithm> using nam ...
随机推荐
- zookeeper-伪分布式搭建
1. 下载解压 2. 在conf目录下,新建3个文件(3台服务器):zoo1.cfg.zoo2.cfg.zoo3.cfg zoo1.cfg: tickTime=2000dataDir=/tmp/zoo ...
- 阿里数据迁移DTS【otter】和阿里巴巴mysql数据库binlog的增量订阅&消费组件 【canal】
[链接]alibaba/otterhttps://github.com/alibaba/otter https://github.com/alibaba/canal
- WinRAR 去广告的姿势
一直在使用WinRAR解压文件,感觉非常的好用,可是现在WinRAR添加了广告,每次打开压缩包都会弹出广告,有时候甚至在解压的时候弹出来,而每次弹出广告都会卡顿一下,忍了很长时间今天实在是受够了,准备 ...
- 音视频入门-02-RGB拼图
* 音视频入门文章目录 * 图片 & 像素点 & RGB 平时浏览的图片看不出像素点: 图片放大时,可以看出图片是一个个像素点组成的: 每个像素点的颜色可以用 RGB 表示: RGB ...
- (五)Maven中的聚合和继承
一.为什么要聚合? 定义:我们在开发过程中,创建了2个以上的模块,每个模块都是一个独立的maven project,在开始的时候我们可以独立的编译和测试运行每个模块,但是随着项目的不断变大和复杂化,我 ...
- (五)Spring Boot之@RestController注解和ConfigurationProperties配置多个属性
一.@RestController和@Controller的区别 @RestController注解相当于@ResponseBody + @Controller合在一起的作用. 如果只是使用@Rest ...
- 修改win7 iis上传文件大小限制200KB
win7 iis 修改上传限制,需要修改2个地方: 1,“双击“Internet 信息服务(IIS)管理器”中的“ASP”– 打开“配置 ASP 应用程序的属性”–展开“限制属性”:修改“最大请求实体 ...
- 获取类的描述信息 DescriptionAttribute
static void Main(string[] args) { var attrs = typeof(TestClass).GetCustomAttributes(typeof(System.Co ...
- 基于【 centos7】五 || GitLab环境搭建
一.基于Docker部署GitLab环境搭建 1.下载镜像 docker pull beginor/gitlab-ce:11.0.1-ce.0 2.创建GitLab 的配置 (etc) . 日志 (l ...
- 阿里云 ecs win2016 FileZilla Server
Windows Server 2016 下使用 FileZilla Server 安装搭建 FTP 服务 一.安装 Filezilla Server 下载最新版本的 Filezilla Server ...