http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=364

http://poj.org/problem?id=1325

题目大意:

给两台机器A和B,他们分别有n和m个工作模式,初始的时候都在Mode_0状态上,切换工作模式的时候必须重启机子。给你K个任务,第i个任务可以运行在A的mode_x上,B的mode_y上,求完成所有工作所需最少重启次数。

思路:

好吧,不会做。看了大神的思路:

对于任务(i,x,y),我们在A机mode_x与B机mode_y之间连一条边.这样,题目就变成了一个二分图,我们的目的是完成所有任务,即覆盖所有线段,题目要求选择最少的点,使得每个线段至少有一个端点被选中(这个任务就被完成了),这就是最小点覆盖模型,答案是这个二分图的最大匹配.

#include<cstdio>
#include<cstring>
const int MAXN=200+10;
int head[MAXN],len,res[MAXN];
bool vis[MAXN];
struct edge
{int to,next;
}e[MAXN*MAXN];
void add(int from,int to)
{e[len].to=to;e[len].next=head[from];head[from]=len++;
}
bool find(int a)
{for(int i=head[a];i!=-1;i=e[i].next){int id=e[i].to;if(!vis[id]){vis[id]=true;if(res[id]==0 || find(res[id])){res[id]=a;return true;}}}return false;
}
int main()
{int n,m,k;while(scanf("%d",&n),n){       scanf("%d%d",&m,&k);memset(head,-1,sizeof(head));len=0;memset(res,0,sizeof(res));for(int i=1;i<=k;i++){int t,x,y;scanf("%d%d%d",&t,&x,&y);if( x != 0 && y != 0 )  // 初始态是0,默认完成。   add(x,y);}int ans=0;for(int i=1;i<=n;i++){memset(vis,0,sizeof(vis));if(find(i)) ans++;}printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/murmured/p/5004087.html

POJ 1325 Machine Schedule(zoj 1364) 最小覆盖数相关推荐

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

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

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

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

  3. poj 1325 Machine Schedule 最小顶点覆盖

    题意 两个机器A,B, 分别有 N,M个工作模式, K个作业,可以在( Ai, Bj ) 模式下工作. 机器最初在模式0下. 问最小的 切换模式次数. 解题思路 A, B 两个天然二分图顶点集合,   ...

  4. poj 1325 Machine Schedule 解题报告

    题目链接:http://poj.org/problem?id=1325 题目意思:有 k 个作业,机器A有 n 个模式:0 ~ n-1,机器B 有 m 个模式:0~ m-1.每一个作业能运行在 A 的 ...

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

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

  6. 二分图大讲堂——彻底搞定最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配

    二分图匹配 二分图大讲堂--彻底搞定最大匹配数(最小覆盖数).最大独立数.最小路径覆盖.带权最优匹配(转) 文本内容框架: §1图论点.边集和二分图的相关概念和性质 §2二分图最大匹配求解 匈牙利算法 ...

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

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

  8. Machine Schedule为什么UVA过了POJ过不了

    UVA1194 POJ1325 POJ要多判一个非零!!! #include<cstdio> #include<vector> #include<cstring> ...

  9. POJ 2590 Steps (ZOJ 1871)

    http://poj.org/problem?id=2590 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1871 题目大 ...

最新文章

  1. c语言编程存航线,C语言编程飞机订票系统如何设计?
  2. 用IE重起计算机或者关机
  3. 第一次使用VS Code时你应该知道的一切配置
  4. abovedisplayskip无效_latex减少图片和图片解释文字之间的距离、调整公式与正文间距离,调整空白大小:...
  5. linux 磁盘查看sbli,Linux磁盘配额应用
  6. 安卓canvas设置HTML,安卓开发中view和canvas的理解
  7. Android Handler、Loop 的简单使用
  8. 【文章】人的好运从哪里来?
  9. 改进协议 BIP32-39-44概述
  10. python-教学管理系统-开发流程 草稿
  11. leetcode python 1
  12. UI加载动效模板|优秀作品给UI设计师做个示范
  13. hive mysql互导_利用Sqoop实现Hive的数据与MySQL数据的互导
  14. tf.gradients ---错误FetchargumentNonehasinvalidtype
  15. 使用bootstrap-table简化CRUD
  16. 【学术】SCI期刊影响因子查询方式
  17. 四巨头键盘钢琴音源完整版-Spectrasonics Keyscape v1.1.3C WiN-MAC
  18. kindle导出电子书pc_使用Kindle for PC预览和购买电子书
  19. Iphone快捷指令示例:自动更换墙纸并叠放近期日程在墙纸上
  20. win10开机就卡死在桌面上怎么解决

热门文章

  1. 从客户端中(...)检测到有潜在危险的 Request.Form值
  2. matlab 数字字母,MATLAB读取txt(包含字母和数字)
  3. Centos安装桌面系统并设置成默认启动
  4. java中位于集合框架顶层位置的是,CoreJava第二次内测有答案
  5. JAVA面向对象OOP→继承extends、构造方法super、方法重写override、样例代码
  6. epplus word html,EPPlus简介
  7. tbopen链接生成工具_筛选了100个配色工具后,我挑出了这25个
  8. 计算机重启恢复到推荐分辨率,为什么重启之后电脑界面分辨率会变
  9. RMQ with Shifts
  10. 教程:Visual Studio 连接 MySQL 数据库(包含常见错误及解决方法)