一部分题解里有这种代码:
void work(int u,int v)
{
if(u<k&&v<k)return OP|=(u>=v),void();
if(su[u]<pr[v])return ;
if(pr[u]>su[v])return OP=1,void();
if(pr[u]==pr[v]&&su[u]==su[v])return ;
int m1=(pr[u]+su[u])>>1,m2=(pr[v]+su[v])>>1;
if(su[v]<=m1)
{
su[u]=m1,Q.push(u);
if(su[u]==pr[u])OP=1;
}
if(pr[u]>m2)
{
pr[v]=m2+1,Q.push(v);
if(su[v]==pr[v])OP=1;
}
}
如果把 su[u]=m1 换成 su[u]=su[v] 就会 WA,为什么