给出一系列任务,每个任务可以在机器A的某个模式,或者在机器B的某个模式下完成。机器A和B每切换一次模式需要重启一次。问完成这些任务,最少需要重启机器多少次?

把任务看作边 “重启”操作看作点

这道题就是一个裸的二分图最小点覆盖

然后呢 最小点覆盖 NP完全问题

然后呢 二分图中 最小点覆盖等于最大匹配

我真是做TMD无敌棒槌终极骚猪喷香油水水之终极猪皮皮之麻辣臭皮小骚猪

好的好的随便写个匈牙利10分钟AC

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<cstring>
using namespace std; const int Max=;
int n,m,yM[Max];
bool vis[Max],map[Max][Max]; bool SearchPath(int u)
{
for(int v=;v<m;v++)
if(!vis[v] && map[u][v])
{
vis[v]=true;
if(yM[v]==- || SearchPath(yM[v]))
{
yM[v]=u;
return true;
}
}
return false;
} int MaxMatch()
{
int u,ret=;
memset(yM,-,sizeof(yM));
for(u=;u<n;u++)
{
memset(vis,false,sizeof(vis));
if(SearchPath(u))
ret++;
}
return ret;
} int main()
{
int i,k,u,v;
while(scanf("%d",&n),n)
{
scanf("%d%d",&m,&k);
memset(map,,sizeof(map));
while(k--)
{
scanf("%d%d%d",&i,&u,&v);
if(u!=&&v!=) //如果有一个有0,则这个工作不用重启时间
map[u][v]=;
}
cout<<MaxMatch()<<endl;
}
return ;
}

poj1325的更多相关文章

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

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

  2. ACM/ICPC 之 机器调度-匈牙利算法解最小点覆盖集(DFS)(POJ1325)

    //匈牙利算法-DFS //求最小点覆盖集 == 求最大匹配 //Time:0Ms Memory:208K #include<iostream> #include<cstring&g ...

  3. POJ1325 Machine Schedule

    Description As we all know, machine scheduling is a very classical problem in computer science and h ...

  4. POJ1325 Machine Schedule(二分图最小点覆盖集)

    最小点覆盖集就是在一个有向图中选出最少的点集,使其覆盖所有的边. 二分图最小点覆盖集=二分图最大匹配(二分图最大边独立集) 这题A机器的n种模式作为X部的点,B机器的m种模式作为Y部的点: 每个任务就 ...

  5. POJ1325 Machine Schedule 【二分图最小顶点覆盖】

    Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11958   Accepted: 5094 ...

  6. 【二分图裸题】poj1325机器调度

    题目大意:有两个机器A和B,A机器有n个模式,B机器有m个模式,两个机器最初在0模式 然后有k个作业,每个作业有三个参数i,a,b i代表作业编号,a和b代表第i作业要么在A机器的a模式下完成[或者] ...

  7. Machine Schedule poj1325

    Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17454   Accepted: 7327 ...

  8. POJ1325机器重启次数——二分图匈牙利算法模板

    题目:http://poj.org/problem?id=1325 求最小点覆盖.输出最大匹配数就行,结果略复杂地弄了. 注意由题可知 可以直接把与0有关的边删掉.不过亲测不删0而计数时不计0就会WA ...

  9. poj1325(Machine Schedule)

    题目链接:传送门 题目大意:有k个任务,可以在 A 机器的 x 位上完成,也可以在 B 机器的 y 位上完成.问最少需要多少个点位即可完成所有任务. 题目思路:求最小点覆盖. 把 A 机器,B 机器看 ...

  10. POJ1325(最小顶点覆盖)

    Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14429   Accepted: 6153 ...

随机推荐

  1. SQL SERVER 2005 Express版, 精简版 下载

      Microsoft SQL Server 2005 Express Edition(数据库) https://www.microsoft.com/zh-CN/download/details.as ...

  2. a各种状态

    hover   设置对象在其鼠标悬停时的样式表属性 active  设置对象在被用户激活(在鼠标点击与释放之间发生的事件)时的样式表属性.link  设置a对象在未被访问前的样式表属性.visited ...

  3. C# Xml Linq XDocument 基本操作 -- 重新学习

    person.xml <?xml version="1.0" encoding="utf-8"?> <MyP> <P1> & ...

  4. linux常用技巧(资料)

    Linux中查看程序安装位置 如果是rpm的安装,用rpm -ql如果是一般安装 用 whereis 或者 find find /usr -name catalina.out======== 如何查看 ...

  5. JavaScript笔记02——基本语法(包括函数、对象、数组等)

    Doing Math & Logic Conditional & Looping Functions Objects Arrays Doing Math & Logic 1.J ...

  6. java图形验证码

    用java实现验证码的生成,以下代码是一个controller,可以直接使用 package org.jxnd.tongxuelu.controller; import java.awt.Color; ...

  7. mac 查看C++及各种环境的命令

    MacBook-Air:$ which g++/usr/bin/g++MacBook-Air:$ archi386MacBook-Air:$ g++ --versionConfigured with: ...

  8. Java中的UDP协议编程

    一. UDP协议定义   UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层.UDP有不提供数据报分组.组装和不能对数据包 ...

  9. Struts的url-pattern配置问题

    一,servlet容器对url的匹配过程: 当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://loca ...

  10. springcloud一些概念知识

    1.Eureka 1)Eureka服务治理体系支持跨平台 2)三个核心概念:服务注册中心.服务提供者以及服务消费者 3)服务续约:注册完服务之后,服务提供者会维护一个心跳来不停的告诉Eureka Se ...