题意:

两台机器,A台机器有N种模式,B台机器有M种不同的模式,初始模式都是0

以及K个需要运行的任务(i,x,y),在A台机器是x模式,在B台机器是y模式。

请合理为每个任务安排一台机器并合理安排顺序,

每个任务要有对应A B机器的模式中至少要有一种来运行

每次切换都会付出代价1,使得代价最小,

- -求出这个最小值。

思路:

这很明显是有张二分图。

点:A模式,B模式;

边:job_k可由机器A的模式i转化成机器B的模式j(可以理解是任务)

那么问题就转化成是否存在一个最小点集,使得所有的边都至少和该点集的一个点相联系。

这就是最小顶点覆盖数

补:点覆盖、最小点覆盖、最小顶点覆盖数

点覆盖集即一个点集,使得所有边至少有一个端点在集合里。

或者说是“点” 覆盖了所有“边”。

极小点覆盖(minimal vertex covering):本身为点覆盖,其真子集都不是。

最小点覆盖(minimum vertex covering):点最少的点覆盖。点覆盖数(vertex covering number):最小点覆盖的点数。

=最大匹配数

其实这题对于本萌新而言是这个最小点覆盖的问题

二分图求最小顶点覆盖:

即用最少的顶点个数可以让每条边至少与其中一个点关联

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <queue>
#include <math.h>
#include <queue>
#include <stack>
using namespace std;
#define INF 0x3f3f3f
#define pi acos(-1.0)
#define LL long long
#define N 550 int ma[N][N];
int cx[N],cy[N];
int vis[N];
int k,m,n; int fuck(int u)
{
for(int i=0; i<m; i++)
{
if(!vis[i]&&ma[u][i])
{
vis[i]=1;
if(cy[i]==-1||fuck(cy[i]))
{
cy[i]=u;
return 1;
}
}
}
return 0;
} int main()
{
while(~scanf("%d",&n)&&n)
{
int a,b;
scanf("%d%d",&m,&k);
memset(ma,0,sizeof(ma));
int x;
for(int i=0; i<k; i++)
{
scanf("%d%d%d",&x,&a,&b);
if(a>0&&b>0) //初始状态为0,一开始0的边不要加
ma[a][b]=1;
}
memset(cy,-1,sizeof(cy)); int ans=0;
for(int i=0; i<n; i++)
{
memset(vis,0,sizeof(vis));
if(fuck(i))
{
ans++;
}
}
printf("%d\n",ans);
}
return 0;
}

hdoj1150(最小点覆盖)的更多相关文章

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

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

  2. 【POJ 3041】Asteroids (最小点覆盖)

    每次选择清除一行或者一列上的小行星.最少选择几次. 将行和列抽象成点,第i行为节点i+n,第j列为节点j,每个行星则是一条边,连接了所在的行列. 于是问题转化成最小点覆盖.二分图的最小点覆盖==最大匹 ...

  3. POJ 2226 最小点覆盖(经典建图)

    Muddy Fields Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8881   Accepted: 3300 Desc ...

  4. nyoj 237 游戏高手的烦恼 二分匹配--最小点覆盖

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=237 二分匹配--最小点覆盖模板题 Tips:用邻接矩阵超时,用数组模拟邻接表WA,暂时只 ...

  5. [USACO2005][POJ2226]Muddy Fields(二分图最小点覆盖)

    题目:http://poj.org/problem?id=2226 题意:给你一个字符矩阵,每个位置只能有"*"或者“.",连续的横着或者竖的“*"可以用一块木 ...

  6. POJ3041Asteroids(最小点覆盖+有点小抽象)

    Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18289   Accepted: 9968 Descri ...

  7. hdu 1054 最小点覆盖

    Sample Input 4 0:(1) 1 1:(2) 2 3 2:(0) 3:(0) 5 3:(3) 1 4 2 1:(1) 0 2:(0) 0:(0) 4:(0)   Sample Output ...

  8. POJ2226 Muddy Fields(二分图最小点覆盖集)

    题目给张R×C的地图,地图上*表示泥地..表示草地,问最少要几块宽1长任意木板才能盖住所有泥地,木板可以重合但不能盖住草地. 把所有行和列连续的泥地(可以放一块木板铺满的)看作点且行和列连续泥地分别作 ...

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

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

随机推荐

  1. POJ - 1062 昂贵的聘礼(最短路Dijkstra)

    昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %I64d & %I64u SubmitStatus Descr ...

  2. async & await 的前世今生(Updated)----代码demo

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. Cocoapods Undefined symbols for architecture armv7s\arm64

    此类错误 "_OBJC_CLASS_$_AFURLSessionManager", referenced from: 解决的方法 在other linker flags里加入一行 ...

  4. iOS Webview 与 app交互

    有时候我们在内嵌的webview中希望点击一个链接之后,触发iOS原生事件,而不是webview内页面跳转(因为webview的跳转很生硬,而ajax+js模拟则不如原生segue平滑). 有时候我们 ...

  5. 高仿美团iOS版,版本5.7

    高仿美团iOS版,版本:5.7 iOS技术交流群:112365317 github链接:https://github.com/lookingstars/meituan 假设你认为不错.欢迎star 哦 ...

  6. SenTestingKit.framework的报错!

    本文转载至http://www.cocoachina.com/ask/questions/show/106912 ld: building for iOS Simulator, but linking ...

  7. js modify local file

    https://stackoverflow.com/questions/4561157/is-it-possible-to-modify-a-html-file-from-which-the-scri ...

  8. Qt & opencv 学习(二)

    例子:打开图片并显示.打开图片利用Qt的标准文件对话框,第一步是利用OpenCV创建窗口并显示. 添加一个Button,转到信号槽添加代码: using namespace cv; Mat image ...

  9. linux网络配置及IP绑定

    在学习时,参考了这篇文章:http://blog.csdn.net/collection4u/article/details/14127671:在这篇文章中作者讲述了VMware中虚机的三种网络模式: ...

  10. WinDbg调试高内存的.Net进程Dump

    WinDbg的学习路径,艰难曲折,多次研究进展不多,今日有所进展,记录下来. 微软官方帮助文档非常全面:https://msdn.microsoft.com/zh-cn/library/windows ...