ACM数据结构-单调栈队列

Posted TQCAI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM数据结构-单调栈队列相关的知识,希望对你有一定的参考价值。

1.最大数

代码:

#include <stdio.h>
#include <memory.h>
#include <math.h>
#include <string>
#include <vector>
#include <set>
#include <stack>
#include <queue>
#include <algorithm>
#include <map>


#define I scanf
#define OL puts
#define O printf
#define F(a,b,c) for(a=b;a<c;a++)
#define FF(a,b) for(a=0;a<b;a++)
#define FG(a,b) for(a=b-1;a>=0;a--)
#define LEN 200010
#define MAX 1<<30
#define V vector<int>
#define ll long long  

using namespace std;

inline ll max(ll a,ll b){
    return a>b?a:b;
}

int T,i;
ll D,t=0;
ll q[LEN],a[LEN];
int len=0;

int main(){
    freopen("最大数.txt","r",stdin);
    I("%d%lld",&T,&D);
    while(T--){
        char buf[10];
        ll num;
        I("%s%lld",buf,&num);
        if(buf[0]==\'A\'){
            a[++len]=(num+t)%D;
            for(i=len;i>=1;i--){
                if(q[i]<a[len])
                    q[i]=a[len];
                else break;
            }
        }else{
            printf("%lld\\n",t=q[len-num+1]);
        }
    }
    return 0;
}
View Code

理解:


 

以上是关于ACM数据结构-单调栈队列的主要内容,如果未能解决你的问题,请参考以下文章

acm算法总结zon列表

打ACM学的那些算法

ACM入门之单调栈

单调队列单调栈

单调队列与单调栈用法详解

数据结构——单调栈&单调队列(解决滑动窗口问题)