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; }
理解:
以上是关于ACM数据结构-单调栈队列的主要内容,如果未能解决你的问题,请参考以下文章