国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

BZOJ 2002 Bounce 彈飛綿羊

2019-11-08 03:03:58
字體:
來源:轉載
供稿:網友

LCT模板題,用LCT維護size大小。

#include<iostream>#include<cstdio>using namespace std;const int maxn=201000;int n,m,x,y,op,sz[maxn],next[maxn],fa[maxn],tree[maxn][2],s[maxn];bool rev[maxn];inline bool isroot(int x){ return tree[fa[x]][0]!=x&&tree[fa[x]][1]!=x;} inline void pushup(int x){ sz[x]=sz[tree[x][0]]+sz[tree[x][1]]+1;}inline void pushdown(int x){ if(rev[x]) { rev[x]^=1;rev[tree[x][0]]^=1;rev[tree[x][1]]^=1; swap(tree[x][0],tree[x][1]); }}void rotate(int x){ int y=fa[x],z=fa[y],l=tree[y][1]==x,r=l^1; if(!isroot(y)) tree[z][tree[z][1]==y] = x; fa[x]=z;fa[y]=x;fa[tree[x][r]]=y; tree[y][l]=tree[x][r];tree[x][r]=y; pushup(y);pushup(x);}void splay(int x){ int top=0;s[++top]=x; for(int i=x;!isroot(i);i=fa[i]) { s[++top]=fa[i]; } for(int i=top;i;i--) pushdown(s[i]); while(!isroot(x)) { int y=fa[x],z=fa[y]; if(!isroot(y)) { if(tree[y][0]==x^tree[z][0]==y) rotate(y);else rotate(x); } rotate(x); }}void access(int x){ int t=0; while(x) { splay(x); tree[x][1]=t; t=x;x=fa[x]; }}void rever(int x){ access(x);splay(x),rev[x]^=1;}void link(int x,int y){ rever(x);fa[x]=y;splay(x);}void cut(int x,int y){ rever(x);access(y);splay(y);tree[y][0]=fa[x]=0;}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&x); fa[i]=x+i; sz[i]=1; if (fa[i]>n+1) fa[i]=n+1; next[i]=fa[i]; } sz[n+1]=1; scanf("%d",&m); for (int i=1;i<=m;i++) { scanf("%d",&op); if (op==1) { rever(n+1); scanf("%d",&x); x++; access(x); splay(x);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 十堰市| 河南省| 托里县| 平定县| 五原县| 滕州市| 清丰县| 营口市| 桂东县| 定结县| 宝丰县| 中牟县| 通河县| 洪泽县| 太保市| 土默特左旗| 项城市| 隆德县| 瑞丽市| 塔河县| 黔南| 尤溪县| 镇远县| 托里县| 苗栗市| 含山县| 康定县| 酒泉市| 临泽县| 麻阳| 鲜城| 和政县| 金溪县| 辽源市| 芮城县| 南部县| 灵寿县| 扎赉特旗| 正宁县| 桓仁| 外汇|