zoukankan      html  css  js  c++  java
  • 洛谷—— P2251 质量检测

    https://www.luogu.org/problemnew/show/P2251

    题目背景

    题目描述

    为了检测生产流水线上总共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

     1 #include <cstdio>
     2 
     3 #define min(a,b) (a<b?a:b)
     4 
     5 inline void read(int &x)
     6 {
     7     x=0; register char ch=getchar();
     8     for(; ch>'9'||ch<'0'; ) ch=getchar();
     9     for(; ch>='0'&&ch<='9'; ch=getchar()) x=x*10+ch-'0';
    10 }
    11 const int N(1000005);
    12 int n,m,st[N][20],log2[N],t;
    13 
    14 int Presist()
    15 {
    16     read(n),read(m);
    17     for(int i=1; i<=n; ++i)
    18         read(st[i][0]),log2[i]=(1<<t+1==i)?++t:t;
    19     for(int j=1; 1<<j<=n; ++j)
    20       for(int i=1; i+(1<<j)<=n+1; ++i)
    21         st[i][j]=min(st[i][j-1],st[i+(1<<j-1)][j-1]);
    22     for(int r,l=1,mid=log2[m]; l<=n-m+1; ++l)
    23     {
    24         r=l+m-1;
    25         printf("%d
    ",min(st[l][mid],st[r-(1<<mid)+1][mid]));
    26     }
    27     return 0;
    28 }
    29 
    30 int Aptal=Presist();
    31 int main(int argc,char**argv){;}
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    Apache HTTP Server 与 Tomcat 的三种连接方式介绍(转)
    Java实现二叉树遍历以及常用算法
    随想-经验
    Java代码检查工具
    MongoDB学习笔记-维护
    脏检查
    html5对密码加密
    JavaSript模块化-AMD规范与CMD规范
    AngularJS的$watch用法
    常用的几个小函数
  • 原文地址:https://www.cnblogs.com/Shy-key/p/7795184.html
Copyright © 2011-2022 走看看