洛谷 P3386 【模板】二分图匹配
来源:互联网 发布:民间信贷数据 编辑:程序博客网 时间:2024/06/03 12:55
洛谷 P3386 【模板】二分图匹配
题目
题目背景
二分图
题目描述
给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数
输入输出格式
输入格式:
第一行,n,m,e
第二至e+1行,每行两个正整数u,v,表示u,v有一条连边
输出格式:
共一行,二分图最大匹配
输入输出样例
输入样例#1:
1 1 11 1
输出样例#1:
1
说明
n,m≤1000,1≤u≤n, 1≤v≤m
因为数据有坑,可能会遇到 v>mv>m 的情况。请把 v>mv>m 的数据自觉过滤掉。
算法:二分图匹配
题解
匈牙利匹配(重新打一遍模板)
代码
#include<cstdio>#include<cstring>using namespace std;int n,m,t,tot,ans;int lnk[1005],p[1005];bool vis[1005];struct edge{ int nxt,y;} e[2000005];int readln(){ int x=0,f=1; char ch=getchar(); while (ch<'0'||ch>'9') {if (ch=='-') f=-1;ch=getchar();} while ('0'<=ch&&ch<='9') x=x*10+ch-48,ch=getchar(); return x;}void add(int x,int y){ tot++;e[tot].nxt=lnk[x];lnk[x]=tot;e[tot].y=y;}bool dfs(int x){ for (int i=lnk[x];i;i=e[i].nxt) { int y=e[i].y; if (!vis[y]) { vis[y]=true; if (!p[y]||dfs(p[y])) {p[y]=x;return true;} } } return false;}int main(){ n=readln();m=readln();t=readln(); for (int i=1;i<=t;i++) { int x=readln(),y=readln(); if (y>m||x>n) continue; add(x,y); } memset(p,0,sizeof(p)); for (int i=1;i<=n;i++) { memset(vis,false,sizeof(vis)); if (dfs(i)) ans++; } printf("%d",ans); return 0;}
阅读全文
0 0
- 洛谷 P3386【模板】二分图匹配
- 洛谷 P3386 【模板】二分图匹配
- 洛谷 P3386 【模板】二分图匹配
- 洛谷P3386【模板】二分图匹配
- 洛谷P3386 【模板】二分图匹配
- 洛谷 P3386 【模板】二分图匹配
- P3386 【模板】二分图匹配 Ek 与 dinic
- P3386 二分图 最大匹配
- 【模板】匈牙利算法 二分图匹配 (模版题:洛谷P3386)
- 二分图——洛谷P3386 【模板】二分图匹
- P3386 【模板】二分图匹配(网络流与线性规划24题01飞行员配对方案问题)
- 二分图匹配模板
- 图--二分匹配模板
- 【二分图匹配模板】
- 二分图匹配模板
- 二分图匹配模板
- 二分图匹配模板
- 二分图匹配模板
- 工博会“奇”景出现,观众们都不愿离开!
- 构建超融合新格局,戴尔中国正式销售VxRail
- OpenGL光源光照基础
- 比特币为何成了“背锅侠”?
- 看开源之火如何燎原:2017红帽论坛直击
- 洛谷 P3386 【模板】二分图匹配
- java环境变量设置常见的问题
- springMVC解决post、get中文乱码
- loongson2f龙芯灵珑9S2A一体机dd命令克隆硬盘方式备份系统
- 【卡特兰数】BZOJ1856(Scoi2010)[字符串]题解
- UVa-10820 Send a Table 欧拉函数
- 《深入理解Linux内核》软中断/tasklet/工作队列
- Java编程思想中Instanceof、getClass的区别以及反射部分
- MongoDB 用户与访问权限控制简介