机器的不同模式为点,对于每个job,建两条边 A机器需要的模式<->B机器需要的模式。

问题转化为最小点覆盖,然后用二分图的最小点覆盖==最大匹配,用匈牙利算法解。

#include <cstdio>
#include <cstring>
const int N=105<<1;
const int M=1001<<1;
struct edge{int to,next;
}e[M];
int head[N],tot;
void add(int u,int v){e[tot].to=v;e[tot].next=head[u];head[u]=tot++;
}
void init(){tot=0;memset(head,-1,sizeof head);
}
int n,vis[N],link[N];
int find(int u)
{for(int i=head[u];~i;i=e[i].next){int v=e[i].to;if(!vis[v]){vis[v]=1;if(!link[v]||find(link[v])){link[v]=u;return 1;}}}return 0;
}
int solve(){memset(link,0,sizeof link);int ans=0;for(int i=1;i<=n;i++){memset(vis,0,sizeof vis);if(find(i))ans++;}return ans;
}
int main(){int k,m,u,v;while(scanf("%d",&n),n){init();scanf("%d%d",&m,&k);while(k--){scanf("%d%d%d",&m,&u,&v);add(u,v+n);add(v+n,u);}printf("%d\n",solve());}
}

  

【HDU 1150】Machine Schedule(二分图匹配)相关推荐

  1. HDU - 1150 Machine Schedule(最小点覆盖-二分图最大匹配)

    题目链接:点击查看 题目大意:现在有一个机器A和一个机器B,A机器有n种模式,B机器有m种模式,现在有k次工作需要完成,每次工作的信息为: id x y:编号为id,在A机器要用x模式完成,在B机器要 ...

  2. hdu 1150 Machine Schedule (经典二分匹配)

    //A组n人 B组m人 //最多有多少人匹配 每人仅仅有匹配一次 # include<stdio.h> # include<string.h> # include<alg ...

  3. POJ-1325 Machine Schedule 二分图匹配 最小点覆盖问题

    POJ-1325 题意: 有两台机器A,B,分别有n,m种模式,初始都在0模式,现在有k项任务,每项任务要求A或者B调到对应的模式才能完成.问最少要给机器A,B调多少次模式可以完成任务. 思路: 相当 ...

  4. POJ 1325 Machine Schedule[二分图匹配*最小点覆盖]

    题意: 两台机器,有 k 个工作,每个工作可以在 a 机器的 P 模式或在 b 机器的 q 模式下解决,两台机器初始状态为 0 模式,每台机器没变换一次模都要重启一次, 问至少重启多少次可以完成所有工 ...

  5. HDU 2819 Swap(二分图匹配)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=2819 [题目大意] 给出一个棋盘,由白格子和黑格子组成,可以交换棋盘的行列, 使得其主对角线为黑格 ...

  6. POJ 1325 Machine Schedule(二分图最小点集覆盖)

    题目链接:http://poj.org/problem?id=1325 题意:A机器有n个模式,B机器有m个模式,有k个任务,第i个任务可以用A机器的ai模式或者B机器的bi模式,换模式需要重启,开始 ...

  7. 【HDOJ】1150 Machine Schedule

    匈牙利算法. 1 #include <stdio.h> 2 #include <string.h> 3 4 #define MAXNUM 1005 5 6 char map[M ...

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

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

  9. 【 HDU - 5093】Battle ships(匈牙利算法,二分图匹配)

    题干: Dear contestant, now you are an excellent navy commander, who is responsible of a tough mission ...

  10. HDU 2444 The Accomodation of Students 二分图匹配

    HDU 2444 The Accomodation of Students 二分图匹配 题目来源: HDU 题意: 给出学生数n和关系数m,接下来给出m个关系. 要求将学生分成两部分,每一部分不能有互 ...

最新文章

  1. 小试牛刀(1)简单实现用户添加和登录(文件版)
  2. opencv+pythons相机标定源码解析
  3. java 马踏棋盘优化_我所知道的十大常用算法之马踏棋盘算法(深度搜索、贪心思想优化 )...
  4. [转]Spring中property-placeholder的使用与解析
  5. springboot三层架构_几张图让你快速了解数据中台技术架构
  6. Java常量池学习总结-1
  7. 【Android】Mac安装EasyTether导致无法识别设备的问题
  8. VMware12安装虚拟机教程、Ubuntu16.04安装教程
  9. html跟随鼠标事件,HTML5深入学习之鼠标跟随,拖拽事件
  10. Perlin noise(一)
  11. 使用ResNet101作为预训练模型训练Faster-RCNN-TensorFlow-Python3-master
  12. 南京融时代 php,河西南,回不去的3万5时代
  13. 面试问到UDP,这样回答offer拿到手软
  14. IP和子网掩码和网关的关系
  15. 数据结构:什么是红黑树?为什么要用红黑树?
  16. 语言认知模型--的学习笔记
  17. ip段各个号段的含义
  18. 【树莓派】一、新坑入门-购买篇、基础配置篇
  19. 图书馆系统c语言作业,C语言图书馆管理系统课程设计报告
  20. python3中的os.path模块

热门文章

  1. textarea如何实现高度自适应?
  2. bzoj1037[ZJOI2008]生日聚会Party dp
  3. C++反汇编第五讲,认识多重继承,菱形继承的内存结构,以及反汇编中的表现形式....
  4. 简要介绍BASE64、MD5、SHA、HMAC几种方法。
  5. python之gevent模块实现协程
  6. 远程登录阿里云上的MySQL
  7. 为了找工作的学习计划
  8. 阿里淘宝天猫单点登录项目实战(附源码)
  9. hive整合ldap权限管理
  10. Android学习之碎片与活动之间的通信