if(vis[u]) sol(u); swap(c[u],q2[t].c); if(vis[u]) sol(u);
和
if(!vis[u]) swap(c[u],q2[t].c); if(vis[u]) sol(u),swap(c[u],q2[t].c),sol(u);
实际上是不等价的,因为第一种写法的 vis[u] 在 sol(u) 之后已经变了。
vis[u]
sol(u)
应该没人像我这么糖吧。