二分图边染色器
https://www.luogu.com.cn/article/p54wgl42
struct color{
ll col[N*2][N];
void init(ll x,ll y){
for(ll i=1;i<=x;i++){
for(ll j=1;j<=y;j++){
col[i][j]=0;
}
}
}
inline void add(ll u,ll v){
ll p1=1,p2=1;
while(col[u][p1]) p1++;
while(col[v][p2]) p2++;
col[u][p1]=v,col[v][p2]=u;
if(p1==p2) return;
ll flp=p1^p2,cur=p2;
for(ll w=v;w;cur^=flp){
swap(col[w][p1],col[w][p2]);
w=col[w][cur];
}
}
} bip;

浙公网安备 33010602011771号