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

理解:


 

posted @ 2018-02-18 21:46  TQCAI  阅读(213)  评论(0编辑  收藏  举报