标签:ch int fix P2516 ret ST HAOI2010 include define
开一个单调队列,下标递增,值递减。
然后在上面二分最大数。
如果加上并查集可以做到接近线性。
还有一种是插入一个数然后,从后向前更新ST表。
#include<cstdio> #include<iostream> #define R register int using namespace std; inline int g() { R ret=0,fix=1; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-1:fix; do ret=ret*10+(ch^48); while(isdigit(ch=getchar())); return ret*fix; } const int N=200010; int n,M,cnt,top,t; int a[N],q[N]; signed main() { n=g(),M=g(); for(R i=1,x;i<=n;++i) { register char s[2]; scanf("%s",s),x=g(); if(s[0]=='A') { a[++cnt]=(x+t)%M; while(top&&a[q[top]]<a[cnt]) --top; q[++top]=cnt; } else if(s[0]=='Q') printf("%d\n",t=a[*lower_bound(q+1,q+top+1,cnt-x+1)]); } }
ST表:
#include<cstdio> #include<iostream> #include<cmath> #define ll long long #define R register ll using namespace std; namespace jack { #define db double int n,m; ll t,d,ans,a[200010],f[200010][21]; bool flg; inline int max(int a,int b) {return a>b?a:b;} inline void change(int u) {f[u][0]=a[u]; for(R i=1;u-(1<<i)>=0;i++) f[u][i]=max(f[u][i-1],f[u-(1<<(i-1))][i-1]);}//反向ST表 inline ll find(int a,int b) {db t=log2(b-a+1); R k=t; return max(f[b][k],f[a+(1<<k)-1][k]);} inline ll g() { R ret=0,fix=1; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-1:fix; do ret=(ret<<3)+(ret<<1)+(ch^48); while(isdigit(ch=getchar())); return fix*ret; } inline void main() { m=g(),d=g(); for(R i=1;i<=m;i++) { register char ch; while(!isalpha(ch=getchar())); if(ch=='A') {R x=g();a[++n]=(x+t)%d,change(n);} else { R l=g(); if(l==1) {printf("%lld\n",a[n]),t=a[n];continue;} ans=find(n-l+1,n); printf("%lld\n",ans); t=ans; } } } } signed main() {jack::main();}
2019.07.03
标签:ch,int,fix,P2516,ret,ST,HAOI2010,include,define 来源: https://www.cnblogs.com/Jackpei/p/11128624.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。