【洛谷P3792】由乃与大母神原型和偶像崇拜
2017-08-28 14:14
302 查看
如果不考虑重复,显然r-l==maxv-minv则可以保证合法。
如果考虑重复的话,可以用区间和和区间平方和辅助验证。
以上所有均可以用线段树维护。
如果考虑重复的话,可以用区间和和区间平方和辅助验证。
以上所有均可以用线段树维护。
#include<bits/stdc++.h> const int yql=998244353; const int N=500010; const int inf=0x7fffffff; using namespace std; typedef long long ll; int n,m,a ,mx,mn,x,y,inv; ll ss,sum; inline int read(){ int f=1,x=0;char ch; do{ch=getchar();if(ch=='-')f=-1;}while(ch<'0'||ch>'9'); do{x=x*10+ch-'0';ch=getchar();}while(ch>='0'&&ch<='9'); return f*x; } inline int fpow(int x,int p){ int ans=1; for(;p;p>>=1,x=(1LL*x*x)%yql)if(p&1)ans=(1LL*ans*x)%yql; return ans; } inline int calc(int x){return 1LL*x*(x+1)%yql*(x<<1|1)%yql*inv%yql;} struct Segment_Tree{ #define lson (o<<1) #define rson (o<<1|1) int maxv[N<<2],minv[N<<2]; ll sumv[N<<2],s[N<<2]; inline void pushup(int o){ maxv[o]=max(maxv[lson],maxv[rson]); minv[o]=min(minv[lson],minv[rson]); sumv[o]=(sumv[lson]+sumv[rson])%yql; s[o]=s[lson]+s[rson]; } inline void build(int o,int l,int r){ if(l==r){maxv[o]=minv[o]=s[o]=a[l];sumv[o]=(1LL*a[l]*a[l])%yql;return;} int mid=(l+r)>>1; build(lson,l,mid);build(rson,mid+1,r); pushup(o); } inline void change(int o,int l,int r,int q,int v){ if(l==r){maxv[o]=minv[o]=s[o]=v;sumv[o]=(1LL*v*v)%yql;return;} int mid=(l+r)>>1; if(q<=mid)change(lson,l,mid,q,v); else change(rson,mid+1,r,q,v); pushup(o); } inline void query(int o,int l,int r,int ql,int qr){ if(ql<=l&&r<=qr){ mx=max(maxv[o],mx);mn=min(mn,minv[o]);sum=(sum+sumv[o])%yql;ss+=s[o]; return; } int mid=(l+r)>>1; if(ql<=mid)query(lson,l,mid,ql,qr); if(qr>mid)query(rson,mid+1,r,ql,qr); } }T; int main(){ n=read();m=read();inv=fpow(6,yql-2); for(int i=1;i<=n;i++)a[i]=read(); T.build(1,1,n); while(m--){ int opt=read(),l=read(),r=read(); if(opt==1)T.change(1,1,n,l,r); else{ mx=0;mn=inf;ss=0;sum=0; T.query(1,1,n,l,r); if(mx-mn==r-l&&(1LL*(mx+mn)*(r-l+1))>>1==ss&&(calc(mx)-calc(mn-1)+yql)%yql==sum)puts("damushen"); else puts("yuanxing"); } } }
相关文章推荐
- [洛谷P3792] 由乃与大母神原型和偶像崇拜
- 洛谷P3792 由乃与大母神原型和偶像崇拜
- AC日记——由乃与大母神原型和偶像崇拜 洛谷 P3792
- 【洛谷5月月赛R2】由乃与大母神原型和偶像崇拜(线段树+hash)
- 洛谷.3792.由乃与大母神原型和偶像崇拜(线段树 数学)
- 懒惰者的阅读、写作与偶像崇拜
- 深圳的偶像崇拜
- 偶像崇拜——《Java夜未眠》节选
- 偶像DD的问题:你崇拜什么?
- BZOJ4811: [Ynoi2017]由乃的OJ(洛谷P3613)
- 懒惰者的阅读、写作与偶像崇拜
- 朋友圈爆火的这些偶像,是如何收获崇拜的?
- 洛谷 P1133 教主的花园
- 质数筛(洛谷1865 A % B Problem)
- 设计模式之原型模式(Prototype)
- JS原型与原型链终极详解
- Java的23种设计模式----原型模式
- 洛谷 P1638 逛画展
- Mockplus是如何节省你的原型时间的?
- 原型模式 objective-c 版