G
N
I
D
A
O
L

二分图边染色器

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;
posted @ 2025-12-13 20:01  QWQcoding  阅读(1)  评论(0)    收藏  举报