P2071 座位安排(二分图)

Miku

既然是二分图匹配的模板

为什么不和模板一样是绿的

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct b{
	int to;
	int ne;
}e[16001];
int head[4001];
int p;
int n;
int x,y;
int match[4001];
int vis[4001];
int cnt;
void add(int f,int to){
	p++;
	e[p].to=to;
	e[p].ne=head[f];
	head[f]=p;
}
bool find(int now){
	for(int v=head[now];v;v=e[v].ne){
		int i=e[v].to;
			if(!vis[i]){
				vis[i]=1;
				if((match[i]==0)||find(match[i])){
					match[i]=now;
					return 1;
				}
			}
	}
	return 0;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n*2;++i){
		scanf("%d%d",&x,&y);
		add(i,y*2);
		add(i,y*2-1);
		add(i,x*2);
		add(i,x*2-1);
	}
	for(int i=1;i<=n*2;++i){
		memset(vis,0,sizeof(vis));
		if(find(i))
		cnt++;
	}
	cout<<cnt;
	return 0;
}
posted @   Simex  阅读(149)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
点击右上角即可分享
微信分享提示