【BZOJ】【P2002】【HNOI2010】【弹飞绵羊】【题解】【LCT】
来源:互联网 发布:java package 报错 编辑:程序博客网 时间:2024/04/26 07:15
bzoj挂了好几天了……
LCT模板题,留着自己看……
#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int maxn=200100;int n,m;struct node{node *c[2],*p;int sz,rev;void pushdown(){if(!rev)return ;c[0]->rev^=1;c[1]->rev^=1;swap(c[0],c[1]);rev^=1;}void rz(){sz=c[0]->sz+c[1]->sz+1;}bool d(){return this==p->c[1];}bool root(){return this!=p->c[1]&&this!=p->c[0];}void sets(node *x,int d){pushdown();(c[d]=x)->p=this;rz();}}nil[maxn]; void rot(node *x){node *p=x->p;if(!p->root())p->p->pushdown();p->pushdown();x->pushdown();int d=x->d();p->sets(x->c[!d],d);if(p->root())x->p=p->p;elsep->p->sets(x,p->d());x->sets(p,!d);}void splay(node *x){while(!x->root())if(x->p->root())rot(x);else if(x->p->d()==x->d())rot(x->p),rot(x);else rot(x),rot(x);}node* access(node *x){node *y=nil;for(;x!=nil;y=x,x=x->p){splay(x);x->sets(y,1);}return y;}void makert(node *x){access(x)->rev^=1;splay(x);}node* findrt(node *x){for(x=access(x);x->c[0]!=nil;x=x->c[0]);return x;} void link(node *x,node *y){makert(x);x->p=y;access(x);}void cut(node *x,node *y){makert(x);access(y);splay(y);y->c[0]=x->p=nil;y->rz();}int Qsize(node *x){access(x);splay(x);return x->c[0]->sz;}void Change(int i,int k){node *x=&nil[i+1];splay(x);x->c[0]->p=x->p;x->c[0]=nil;//x->c[0]=x->c[0]->p=nil;x->p=&nil[min(i+1+k,n+1)];}int main(){scanf("%d",&n);node *x;int k;for(int i=1;i<=n;i++){scanf("%d",&k);x=&nil[i];x->c[0]=x->c[1]=nil;x->p=&nil[min(i+k,n+1)];}x=&nil[n+1];x->c[0]=x->c[1]=x->p=nil->c[0]=nil->c[1]=nil->p=nil;scanf("%d",&m);while(m--){int opt;scanf("%d",&opt);int i,k;if(opt==1){scanf("%d",&i);printf("%d\n",Qsize(&nil[i+1]));}else{scanf("%d%d",&i,&k);Change(i,k);}}return 0;}
0 0
- 【BZOJ】【P2002】【HNOI2010】【弹飞绵羊】【题解】【LCT】
- Hnoi2010弹飞绵羊题解LCT
- BZOJ 2002 [HNOI2010] 弹飞绵羊 [LCT]
- 【LCT】BZOJ2002(Hnoi2010)[Bounce 弹飞绵羊]题解
- BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊 (LCT)
- 【BZOJ】2002 [Hnoi2010]Bounce 弹飞绵羊 LCT入门题
- BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 LCT
- BZOJ 2002([Hnoi2010]Bounce 弹飞绵羊-LCT)
- BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊 LCT
- bzoj 2002: [Hnoi2010]Bounce 弹飞绵羊 (LCT)
- 【LCT】BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊
- bzoj 2002: [Hnoi2010]Bounce 弹飞绵羊 lct模板
- BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 LCT
- 【BZOJ 2002】 [Hnoi2010]Bounce 弹飞绵羊 LCT
- [BZOJ 2002][Hnoi2010]Bounce 弹飞绵羊:分块|LCT
- BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊 LCT
- BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊(LCT)
- [LCT]BZOJ 2002——[Hnoi2010]Bounce 弹飞绵羊
- eclipse把java web项目转为maven项目
- html5视频播放
- 安装JZMQ
- Call to undefined function imagettftext()
- maven 导入No marketplace entries found to handle maven-antrun-plugin
- 【BZOJ】【P2002】【HNOI2010】【弹飞绵羊】【题解】【LCT】
- 新人对编写的所想
- mysql 批量更新与批量更新多条记录的不同值
- 社保到底是怎么回事
- 转fu_shuwu:Linux kernel起来后android 之init详解
- const与volatile关键字的用法
- 山东省再生资源公司黄岛一生产加工点 因暴雨发生挡土墙倒塌致伤亡事故
- AJAX ASP/PHP 请求实例
- 创建ArcGIS Engine自定义工具类,生成地图元素