滑大稽 @ 2020-02-28 16:18:16
本蒟蒻本地测试无任何异常,可提交上去一片紫色。望各位大佬帮本蒟蒻看下那里有问题
#include<iostream>
#include<cstdio>
#define N 1000005
using namespace std;
struct nood{
int f,c[2],v,s,l;
}q[N];
int g,s,n;
inline int r()
{
char h=getchar();
int y=0,q=1;
while(h<'0'||h>'9'){if(h=='-')q=-1;h=getchar();}
while(h>='0'&&h<='9'){y=y*10+h-'0';h=getchar();}
return y*q;
}
int gx(int x)
{
q[x].s=q[q[x].c[0]].s+q[q[x].c[1]].s+1;
}
void xz(int x)
{
int y=q[x].f,z=q[y].f,k=q[y].c[1]==x;
q[z].c[q[z].c[1]==y]=x;
q[x].f=z;
q[y].c[k]=q[x].c[k^1];
q[q[x].c[k^1]].f=y;
q[x].c[k^1]=y;
q[y].f=x;
gx(y);
gx(x);
}
void splay(int x,int m)
{
while(q[x].f!=m)
{
int y=q[x].f,z=q[y].f;
if(z!=m)
{
if((q[z].c[1]==y)==(q[y].c[1]==x))xz(y);
else xz(x);
}
xz(x);
}
if(m==0)g=x;
}
void xc(int x)
{
if(!q[x].l)return;
q[q[x].c[0]].l^=1;
q[q[x].c[1]].l^=1;
swap(q[x].c[0],q[x].c[1]);
q[x].l=0;
}
void jr(int v)
{
int x=g,f=0;
while(x)f=x,x=q[x].c[v>q[x].v];
q[++s]=nood{f,{0,0},v,1,0};
if(f)q[f].c[v>q[f].v]=s;
splay(s,0);
}
int cx(int v)
{
int x=g;
while(1)
{
xc(x);
int z=q[x].c[0];
if(v>1+q[z].s)
{
v-=1+q[z].s;
x=q[x].c[1];
}
else
{
if(v>q[z].s)return x;
x=z;
}
}
}
void fz(int x,int y)
{
int l=cx(x),r=cx(y+2);
splay(l,0);
splay(r,l);
q[q[q[g].c[1]].c[0]].l^=1;
}
void sc(int x)
{
xc(x);
if(q[x].c[0])sc(q[x].c[0]);
if(q[x].v>1&&q[x].v<n+2)cout<<q[x].v-1<<" ";
if(q[x].c[1])sc(q[x].c[1]);
}
int main()
{
//freopen("P3391_1.in","r",stdin);
n=r();
int m=r();
for(int i=1;i<=n+2;i++)jr(i);
for(int i=1;i<=m;i++)
{
int x=r(),y=r();
fz(x,y);
}
sc(g);
}
by memsetst @ 2020-02-28 16:46:00
我谔谔
by lxy__ @ 2020-02-28 17:01:49
如果有int类型函数没有return会导致全部RE
by lxy__ @ 2020-02-28 17:02:16
我是这样的
by 滑大稽 @ 2020-02-28 17:08:03
A了,谢谢da_lao @b612