Description

设有M个工人x1, x2, …, xm,和N项工作y1, y2, …, yn,规定每个工人至多做一项工作,而每项工作至多分配一名工人去做。由于种种原因,每个工人只能胜任其中的一项或几项工作。问应怎样分配才能使尽可能多的工人分配到他胜任的工作。这个问题称为人员分配问题。

Input

第一行两个整数m,n分别为工人数和工作数。
接下来一个整数s,为二分图的边数。
接下来s行,每行两个数ai,bi表示第ai个工人能胜任第bi份工作

Output

一个整数,表示最多能让多少个工人派到自己的胜任的工作上。

Sample Input

3 3
4
1 2
2 1
3 3
1 3
Sample Output

3
Hint

规模:
1<=m,n<=100
1<=s<=10000
.
.
.
.
.
分析
将存图方式改成邻接表即可
.
.
.
.
.
.
程序:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int ans,tj,n,m,link[4000],v[4000],head[4000];struct node
{int to,next;
}f[4000];int find(int x)
{for (int i=head[x];i;i=f[i].next){int j=f[i].to;if (!v[j]){int q=link[j];link[j]=x;v[j]=1;if (!q||find(q)) return 1;link[j]=q;}}return 0;
}int main()
{scanf("%d%d",&n,&m);scanf("%d",&m);for (int i=1;i<=m;i++){int x,y;scanf("%d%d",&x,&y);f[++tj].next=head[x];f[tj].to=y;head[x]=tj;}for (int i=1;i<=n;i++){memset(v,0,sizeof(v));ans+=find(i);}printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/YYC-0304/p/10292803.html

最大匹配 人员分配[邻接表]相关推荐

  1. 最大匹配 人员分配[邻接矩阵]

    Description 设有M个工人x1, x2, -, xm,和N项工作y1, y2, -, yn,规定每个工人至多做一项工作,而每项工作至多分配一名工人去做.由于种种原因,每个工人只能胜任其中的一 ...

  2. 数据结构与算法(7-2)图的遍历(深度优先遍历DFS、广度优先遍历BFS)(分别用邻接矩阵和邻接表实现)

    目录 深度优先遍历(DFS)和广度优先遍历(BFS)原理 1.自己的原理图 2.官方原理图 一.邻接矩阵的深度优先遍历(DFS) 1.原理图 2. 过程: 3.总代码 二.邻接表的深度优先遍历(DFS ...

  3. C/C++二级指针概念及应用(有向图的邻接表(拓扑排序)、有向网图的邻接表、树的孩子表示)

    目录 一.概述 例1: 例2: 代码: 二.实例 1.有向图的邻接表(拓扑排序) 2.有向网图的邻接表 3.树的孩子表示 一.概述 二级指针:指向指针的指针.一般需要修改地址的时候会用到二级指针. 注 ...

  4. C语言建立有向图的邻接表及其遍历操作

    1 /*C语言建立有向图的邻接表及其遍历操作*/ 2 #include"stdio.h" 3 #include"stdlib.h" 4 //图的邻接矩阵储存结构 ...

  5. MySQL—通过Adjacency List(邻接表)存储树形结构

    转载自:Mysql通过Adjacency List(邻接表)存储树形结构 今天来看看一个比较头疼的问题,如何在数据库中存储树形结构呢?像mysql这样的关系型数据库,比较适合存储一些类似表格的扁平化数 ...

  6. 有向图的邻接表表示法

    图的邻接表表示法类似于树的孩子链表表示法.对于图G中的每个顶点vi,该方法把所有邻接于vi的顶点vj链成一个带头结点的单链表,这个单链表就称为顶点vi的邻接表(Adjacency List). 1. ...

  7. 数据结构——无向图创建邻接表以及深度遍历、广度遍历(C语言版)

    摘自:数据结构--无向图创建邻接表以及深度遍历.广度遍历(C语言版) 作者:正弦定理 发布时间:2020-12-22 20:55:12 网址:https://blog.csdn.net/chinese ...

  8. 邻接表1试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc,相关定义如下:icoding---算法改进--配详细注释

    邻接表1 试在邻接表存储结构上实现图的基本操作 insert_vertex 和 insert_arc,相关定义如下: typedef int VertexType; typedef enum{DG, ...

  9. 有向图的邻接表描述 c++

    有向图的邻接表表示法 图的邻接表表示法类似于树的孩子链表表示法.对于图G中的每个顶点vi,该方法把所有邻接于vi的顶点vj链成一个带头结点的单链表,这个单链表就称为顶点vi的邻接表(Adjacency ...

最新文章

  1. C语言函数大全(a开头)
  2. 定位(positioning)
  3. 每天一个linux命令(11):nl命令
  4. css实现快速抖动效果_web前端入门到实战:CSS实现照片堆叠效果
  5. 使用PYTHON统计项目代码行数
  6. wolive-在线客服系统源码_如何搭建在线客服系统?
  7. Electric device abnormal detection based on IoT and knowledge graph-学习笔记
  8. ( 设计高效算法 ) 年龄排序 Age Sort Uva 11462
  9. 盘点那些没用的上网小技巧-主流直播平台直播源的获取(适用potplayer)
  10. ESXI洗白安装黑群晖教程,附文件
  11. 1-10000内的素数c语言,输入1-10000的素数
  12. Visual studio的中英文切换
  13. 虚拟机突然没网了,虚拟机突然鼠标失灵
  14. JWT的数字签名的简单理解
  15. 大数据的特征(4V)
  16. 代理IP如何解决爬虫IP被封
  17. 怎么让搜狗收录-如何加快搜狗收录
  18. python中def _init_是什么意思_python3类中的def __init()__如何使用?
  19. C++俄罗斯方块源码(Qt版)
  20. Python-Level1-day16:异常处理try-exceptraise语句,for迭代原理,深入手写创建迭代器;yield浅出使用生成器

热门文章

  1. 台湾大学林轩田机器学习基石课程学习笔记12 -- Nonlinear Transformation
  2. php万年历月份处理_php实现万年历的完整代码
  3. PIC单片机入门_指令系统
  4. Ie6下asp.net 中treeview自动随鼠标变小的修复
  5. 在stringgrid的drawcell事件处理过程中,给单元格赋值时,要用textout输出,不要像一般给cell[i,j]赋值那样。
  6. volatile类型的数据
  7. 感知机:从原理到训练
  8. jsp form表里的submit点击没反应
  9. 简介I/O向量、sendv、writev
  10. Jackson 注解 -- 使用 Map存储JSON