poj 1469 COURSES
//题意:现在有p门课程和n个学生,现在需要有由p个学生组成的组织,该组织满足每个学生代表一门课程以及每门课程只能由一个学生代表,
//现给出每门课程都有哪些学生可以参加,要求判断是否存在满足题意所需要的组织.
//求解二分图的最大匹配数,如果与p相等就输出"YES",否则输出"NO".
poj 1469 COURSES

#include<iostream>        //二分图的最大匹配#include<cstring>using namespace std;int p,n;int result[301];    //result记录V2中的点匹配的点的编号int edge[101][301],vis[301];        //vis记录V2中的每个点是否被搜索过bool find(int a){for(int i=1;i<=n;++i)    {if(edge[a][i]==1&&vis[i]==0)        //如果节点i与a相邻并且未被查找过        {            vis[i]=1;        //标记i为已查找过            if( result[i]==0 || find(result[i])==true )        //如果i未在前一个匹配M中或者 i在匹配M中,但是从与i相邻的节点出发可以有增广路            {                result[i]=a;        //记录查找成功记录                return true;        //返回查找成功            }        }    }return false;}int main(){int cases;    scanf("%d",&cases);while(cases--)    {        memset(edge,0,sizeof(edge));        memset(result,0,sizeof(result));        scanf("%d%d",&p,&n);int m,t;for(int i=1;i<=p;++i)        {            scanf("%d",&m);while(m--)            {                scanf("%d",&t);                edge[i][t]=1;            }        }int ans=0;for(int i=1;i<=p;++i)        {            memset(vis,0,sizeof(vis));        //清空上次搜索时的标记            if(find(i)==true)        //从节点i尝试扩展                ans++;            }if(ans==p)            printf("YES\n");else            printf("NO\n");    }return 0;}

  

转载于:https://www.cnblogs.com/mjc467621163/archive/2011/07/19/2111046.html

二分图匹配----匈牙利算法之二相关推荐

  1. nyoj-239 月老的难题 (二分图匹配—匈牙利算法 网络流—Dinic算法)

    月老的难题 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 月老准备给n个女孩与n个男孩牵红线,成就一对对美好的姻缘. 现在,由于一些原因,部分男孩与女孩可能结成幸福的一 ...

  2. 二分图匹配--匈牙利算法

    文章目录 二分图: 匹配 匈牙利算法 代码: 二分图: 二分图是一个无向图,点集分成子集X和Y,图中每一条边都是一边在X一边在Y 当且仅当无向图G的每一个回路次数都是偶数时(包括0),G就是一个二分图 ...

  3. 二分图匹配——匈牙利算法

    匈牙利算法 什么是匈牙利算法 匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法,并推动了后来的原始对偶方法.美国数学家哈罗德·库恩于1955年提出该算法.此算法之所以被称作匈牙利算法,是因 ...

  4. 二分图匹配-匈牙利算法

    说到二分,我们就很容易想到二分查找算法,今年下半年--,今天所介绍的二分图和二分查找没有太大的联系,我们先来看一下它的定义: 二分图又称作二部图,是图论中的一种特殊模型. 设G=(V,E)是一个无向图 ...

  5. 二分图匹配匈牙利算法DFS实现

    1 /*==================================================*\ 2 | 二分图匹配(匈牙利算法DFS 实现) 3 | INIT: g[][]邻接矩阵; ...

  6. Codevs 1222 信与信封问题 二分图匹配,匈牙利算法

    题目: http://codevs.cn/problem/1222/ 1222 信与信封问题   时间限制: 1 s   空间限制: 128000 KB   题目等级 : 钻石 Diamond 题解 ...

  7. 【CF1139E】Maximize Mex - 二分图匹配 - 匈牙利算法

    [题目链接] https://www.luogu.com.cn/problem/CF1139E [题目描述] 有n个学生,第i个学生在俱乐部c_i,并拥有一个能力值a_i.在接下来的d天中,每天会有一 ...

  8. HDU 2063 过山车 二分图匹配 匈牙利算法

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  9. 数据结构与算法学习笔记15:最大流问题 / 二分图 / 有权无权二分图的匹配 / 匈牙利算法 / 银行家算法 / 稳定婚配

    数据结构与算法学习笔记15:最大流问题 / 二分图 / 有权无权二分图的匹配 / 匈牙利算法 / 银行家算法 / 稳定婚配 引入小题:最短路径 最大流问题(maximum flow problem) ...

最新文章

  1. 如何打造企业的组织能力?战略决定组织,而组织决定成败!
  2. linux $变量含义($0,$1,$2,$#,$@) ----linux 基础
  3. WEB框架原理(socket)
  4. 南昌大学c程序计算机作业,南昌大学计算机作业第二章答案
  5. [BZOJ]1023: [SHOI2008]cactus仙人掌图
  6. 南京林业大学转计算机专业好转吗,南京林业大学如何转专业
  7. 纯静态网站模板封装header和footer
  8. Linux系统编程:使用semaphore信号量和mutex互斥量实现多个生产者和消费者模型
  9. mysql视图应用_MySQL视图的概念与实际应用
  10. 罕有数据库系统之比拟 - Oracle数据库
  11. [转]WF事件驱动(1)
  12. 数字城市厦门智慧防汛平台测试计划【软件测试与工程】
  13. Matpower软件简介和参数介绍
  14. 【安装SSH服务】ubuntu安装ssh以及开启root用户ssh登录
  15. 一、音频基础知识 - 耳机接口标准
  16. arduino SIM868发送post请求到服务器,解决只能成功发送一次的问题
  17. 英特尔服务器级cpu型号含义,intel服务器cpu命名规则
  18. C#使用Google翻译实现在线翻译
  19. Android 六大布局
  20. 解决微信emjoy特殊符号插入数据库出错

热门文章

  1. URAL 1013 K-based Numbers. Version 3
  2. 非安装版的PostgreSQL8.3.3的首次使用经历
  3. python内存管理_Python内存管理(一):预备知识
  4. exit(0)与exit(1)、return区别
  5. C++程序内存泄漏都与哪些方面有关,该如何处理和避免
  6. 隐马尔科夫模型C#类库调用示例
  7. 多台电脑共用一个耳机、音箱
  8. java项目构建部署包
  9. 计算机电路基础张志良,计算机电路基础
  10. android usb弹窗权限r,Android USB权限对话框永远不会出现