博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF896C Willem, Chtholly and Seniorious
阅读量:5146 次
发布时间:2019-06-13

本文共 2036 字,大约阅读时间需要 6 分钟。

珂朵莉树板子,我觉得讲的就很不错

粘一下自己的板子

#include
#define re register#define LL long long#define ST std::set
::iteratorinline int ksm(int a,int b,int mod) { int S=1; for(;b;b>>=1,a=1ll*a*a%mod) if(b&1) S=1ll*S*a%mod; return S;}const int MOD7=1000000007;struct node { int l,r; mutable LL v; bool operator<(const node &A) const{if(l==A.l) return r
s;int n,m,seed,vmax;inline int rnd() { int ret=seed; seed=(seed*7ll+13)%MOD7; return ret;}inline ST split(int pos) { ST it=s.lower_bound((node){pos,-1,0}); if(it!=s.end()&&it->l==pos) return it; --it; int L=it->l,R=it->r;LL t=it->v; s.erase(it); s.insert((node){L,pos-1,t}); return s.insert((node){pos,R,t}).first;}inline void pia(int l,int r,int v) { ST itl=split(l),itr=split(r+1); s.erase(itl,itr); s.insert((node){l,r,(LL)v});}inline void add(int l,int r,int t) { ST itl=split(l),itr=split(r+1); for(;itl!=itr;++itl) itl->v+=t;}inline int calc(int l,int r,int x,int mod) { ST itl=split(l),itr=split(r+1); int ans=0; for(;itl!=itr;++itl) ans=(ans+1ll*ksm(itl->v%mod,x,mod)*(itl->r-itl->l+1)%mod)%mod; return ans; }inline LL rk(int l,int r,int k) { ST itl=split(l),itr=split(r+1); int cnt=0; for(;itl!=itr;++itl) a[++cnt].v=itl->v,a[cnt].t=itl->r-itl->l+1; std::sort(a+1,a+cnt+1,cmp); for(re int i=1;i<=cnt;i++) { if(k-a[i].t>0) {k-=a[i].t;continue;} return a[i].v; }}int main() { //scanf("%d%d%lld%lld",&n,&m,&seed,&vmax); std::cin>>n>>m>>seed>>vmax; for(re int i=1;i<=n;i++) s.insert((node){i,i,rnd()%vmax+1}); int op,l,r,x,y; for(re int i=1;i<=m;i++) { op=rnd()%4+1; l=rnd()%n+1;r=rnd()%n+1; if(l>r) std::swap(l,r); if(op==3) x=rnd()%(r-l+1)+1; else x=rnd()%vmax+1; if(op==4) y=rnd()%vmax+1; if(op==1) add(l,r,x); if(op==2) pia(l,r,x); if(op==4) printf("%d\n",calc(l,r,x,y)); if(op==3) std::cout<

转载于:https://www.cnblogs.com/asuldb/p/11366316.html

你可能感兴趣的文章
在js在添版本号
查看>>
sublime3
查看>>
Exception Type: IntegrityError 数据完整性错误
查看>>
Nuget:Newtonsoft.Json
查看>>
Hdu - 1002 - A + B Problem II
查看>>
每天CookBook之Python-003
查看>>
每天CookBook之Python-004
查看>>
Android设置Gmail邮箱
查看>>
js编写时间选择框
查看>>
Java数据结构和算法(四)--链表
查看>>
JIRA
查看>>
小技巧——直接在目录中输入cmd然后就打开cmd命令窗口
查看>>
深浅拷贝(十四)
查看>>
HDU 6370(并查集)
查看>>
BZOJ 1207(dp)
查看>>
PE知识复习之PE的导入表
查看>>
HDU 2076 夹角有多大(题目已修改,注意读题)
查看>>
洛谷P3676 小清新数据结构题(动态点分治)
查看>>
九校联考-DL24凉心模拟Day2T1 锻造(forging)
查看>>
Attributes.Add用途与用法
查看>>