[网络流24题]飞行员配对方案问题
[luogu 2756]飞行员配对方案问题
英国飞行员为左部节点,外国飞行员为右部节点,直接跑二分图匹配即可
#include<iostream> #include<cstdio> #include<cstring> #define maxn 105 using namespace std; struct edge{ int from; int to; int next; }E[maxn*maxn*2]; int n,m; int sz=0; int head[maxn]; void add_edge(int u,int v){ sz++; E[sz].from=u; E[sz].to=v; E[sz].next=head[u]; head[u]=sz; } int match[maxn]; int vis[maxn]; int dfs(int x){ for(int i=head[x];i;i=E[i].next){ int y=E[i].to; if(!vis[y]){ vis[y]=1; if(!match[y]||dfs(match[y])){ match[y]=x; return 1; } } } return 0; } int hungary(){ int ans=0; for(int i=1;i<=m;i++){ memset(vis,0,sizeof(vis)); if(dfs(i)) ans++; } return ans; } int main(){ int u,v; scanf("%d %d",&n,&m); while(scanf("%d %d",&u,&v)!=EOF){ if(u==-1) break; add_edge(u,v); } printf("%d\n",hungary()); for(int i=1;i<=m;i++){ if(match[i]!=0) printf("%d %d\n",match[i],i); } }
版权声明:因为我是蒟蒻,所以请大佬和神犇们不要转载(有坑)的文章,并指出问题,谢谢
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次 .NET某旅行社酒店管理系统 卡死分析
· 长文讲解 MCP 和案例实战
· Hangfire Redis 实现秒级定时任务,使用 CQRS 实现动态执行代码
· Android编译时动态插入代码原理与实践
· 解锁.NET 9性能优化黑科技:从内存管理到Web性能的最全指南
· 一天 Star 破万的开源项目「GitHub 热点速览」
· 别再堆文档了,大模型时代知识库应该这样建
· 瞧瞧别人家的日期处理,那叫一个优雅!
· C#/.NET/.NET Core技术前沿周刊 | 第 35 期(2025年4.14-4.20)
· 使用TypeScript开发微信小程序(云开发)-入门篇