• HihoCoder1620: 股票价格3 (单调队列 or DP)


    股票价格3

    时间限制:10000ms
    单点时限:1000ms
    内存限制:256MB

    描述

    小Hi最近在关注股票,为了计算股票可能的盈利,他获取了一只股票最近N天的价格A1~AN。  

    小Hi想知道,对于第i天的股票价格Ai,几天之后股价会第一次超过Ai。  

    假设A=[69, 73, 68, 81, 82],则对于A1=69,1天之后的股票价格就超过了A1;对于A2=73,则是2天之后股票价格才超过A2。

    输入

    第一行包含一个整数N。  

    以下N行每行包含一个整数Ai。  

    对于50%的数据,1 ≤ N ≤ 1000  

    对于100%的数据,1 ≤ N ≤ 100000, 1 ≤ Ai ≤ 1000000

    输出

    输出N行,其中第i行代表对于第i天的股票价格Ai,几天之后股价会第一次超过Ai。  

    如果Ai+1~AN之内没有超过Ai,输出-1。

    样例输入
    5  
    69  
    73  
    68  
    81  
    82
    样例输出
    1  
    2  
    1  
    1  
    -1

     之前做过很多这样的题,但是不知道归类与单调队列,还是DP

    具体的可以看看----这几道题

    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int maxn=100010;
    int a[maxn],r[maxn];
    int main()
    {
        int i,j,n;
        scanf("%d",&n);
        for(i=1;i<=n;i++) scanf("%d",&a[i]);
        r[n]=-1;
        for(i=n-1;i>=1;i--){
            int tmp=i+1;
            while(true){
                if(tmp==-1){  r[i]=-1;  break; }
                if(a[tmp]>a[i]){ r[i]=tmp;  break; }
                tmp=r[tmp];
            }
        } 
        for(i=1;i<=n;i++) printf("%d
    ",r[i]>0?r[i]-i:-1);
        return 0;
    }
     
  • 相关阅读:
    php-文件系统
    php
    php
    php
    关于学习上面的感悟
    php
    Error: PostCSS plugin tailwindcss requires PostCSS 8.
    常用/不常用的HTTP状态码
    小程序云托管无需服务器部署PHP
    Docker-镜像操作
  • 原文地址:https://www.cnblogs.com/hua-dong/p/7810303.html
Copyright © 2020-2023  润新知