_pzy_ @ 2019-07-28 20:32:37
BZOJ AC LOJ + 洛谷 TLE+RE 同一份代码,差距好大。。。
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=1e5+5;
struct node{
int val,cnt,ch[2],sz,f,tag;
}t[N<<1];
int tot,rt,n,m;
inline void pushup(int x) {t[x].sz=t[t[x].ch[0]].sz+t[t[x].ch[1]].sz+t[x].cnt;}
inline int get(int x) {return x==t[t[x].f].ch[1];}
inline void pushdown(int x)
{
if(t[x].tag)
{
t[t[x].ch[0]].tag^=1,t[t[x].ch[1]].tag^=1;
swap(t[x].ch[0],t[x].ch[1]),t[x].tag=0;
}
}
inline void rotate(int x)
{
int y=t[x].f,z=t[y].f,k=get(x);
t[z].ch[get(y)]=x,t[x].f=z;
t[y].ch[k]=t[x].ch[k^1],t[t[x].ch[k^1]].f=y;
t[x].ch[k^1]=y,t[y].f=x;
pushup(y),pushup(x);
}
inline void splay(int x,int s)
{
while(t[x].f!=s)
{
int y=t[x].f,z=t[y].f;
if(z!=s) (x==t[y].ch[0])^(y==t[z].ch[0])?rotate(x):rotate(y);
rotate(x);
}
if(!s) rt=x;
}
inline void insert(int x)
{
int u=rt,f=0;
while(t[u].val!=x && u)
{
f=u;
u=t[u].ch[x>t[u].val];
}
if(u) ++t[u].cnt;
else
{
u=++tot;
if(f) t[f].ch[x>t[f].val]=u;
t[u].ch[0]=t[u].ch[1]=0;
t[tot].sz=t[tot].cnt=1;
t[tot].val=x,t[tot].f=f;
}
splay(u,0);
}
inline int kth(int x)
{
int u=rt;
while(1)
{
pushdown(u);
int v=t[u].ch[0];
if(x>t[u].cnt+t[v].sz)
{
x-=t[u].cnt+t[v].sz;
u=t[u].ch[1];
}
else if(x<=t[v].sz && v) u=v;
else return u;
}
}
inline int Reverse(int l,int r)
{
int x=kth(l),y=kth(r+2);
splay(x,0),splay(y,x);
t[t[y].ch[0]].tag^=1;
}
inline void print(int x)
{
pushdown(x);
if(t[x].ch[0]) print(t[x].ch[0]);
if(t[x].val && t[x].val<=n) printf("%d ",t[x].val);
if(t[x].ch[1]) print(t[x].ch[1]);
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=0;i<=n+2;++i) insert(i);
for(int i=1;i<=m;++i)
{
int a,b;scanf("%d%d",&a,&b);
Reverse(a,b);
}
print(rt);
return 0;
}
by mol茶蛋糕 @ 2019-07-28 20:41:42
%%%%% Orz Orz
by Hello,yearning @ 2019-07-28 20:58:33
%%%%%%%
by Hello,yearning @ 2019-07-28 20:59:38
@pzy %%%%%%%
by Shinku721 @ 2019-07-28 21:02:47
STO ORZ
by _pzy_ @ 2019-07-28 21:07:05
@Flandre的Scarlet 大佬别装弱了,快帮帮本蒟蒻
by Shinku721 @ 2019-07-28 21:15:36
你还会splay我连treap都写不好ORZ
by くろねこ @ 2019-07-30 14:17:08
@Flandre的Scarlet 只会写fhq treap的
by くろねこ @ 2019-07-30 14:17:41
@pzy 好巧我也是..
by _pzy_ @ 2019-07-31 09:17:02
@くろねこ我连LOJ都过不了嘤嘤嘤