poj 1325 二分图最小顶点覆盖(机器重启)
来源:互联网 发布:淘宝bb8玩具多少钱 编辑:程序博客网 时间:2024/06/15 01:58
题意:输入A、B机器的总状态和jobs的个数。机器要改变状态就要重启,求最小的重启次数使jobs全部工作。满足A状态或者B状态jobs可以工作
例如输入数据
5 5 100 1 11 1 22 1 33 1 44 2 15 2 26 2 37 2 48 3 39 4 30
0 1 1 代表 要执行0 就需要A是1或者 B是1 所以 前四个只要A都是1 那么 0~3 都可以工作...
所以抽象出二分图的最小顶点覆盖,A--B状态建图。求最小顶点覆盖
#include<iostream>using namespace std;int link[100];bool vis[100],g[100][100];int n,m;bool dfs(int u){ for(int i=1;i<=m;i++) { if(!vis[i]&&g[u][i]) { vis[i]=1; if(link[i]==-1||dfs(link[i])) { link[i]=u; return true; } } } return false;}int maxmatch(){ int num=0; memset(link,-1,sizeof(link)); for(int i=1;i<=n;i++) { memset(vis,0,sizeof(vis)); if(dfs(i)) num++; } return num;}int main(){ int a,b,c; int k; while(scanf("%d%d%d",&n,&m,&k)!=EOF) { if(n==0) break; memset(g,0,sizeof(g)); while(k--) { scanf("%d%d%d",&a,&b,&c); g[b][c]=1; } printf("%d\n",maxmatch()); }}
- poj 1325 二分图最小顶点覆盖(机器重启)
- poj-3041【二分图最小顶点覆盖】
- poj 1325 Machine Schedule---二分图求最小顶点覆盖
- poj 3041 Asteroids( 最小顶点覆盖,二分图)
- POJ 3041-Asteroids(二分图最小顶点覆盖)
- hdu1150(二分图最小顶点覆盖)
- poj 2226 二分图 最小顶点覆盖 “草泥马”
- poj 2226-二分图的最小顶点覆盖
- POJ 3020Antenna Placement(二分图最小顶点覆盖)
- POJ 3041 (二分图匹配 最小顶点覆盖)
- poj 1325 最小顶点覆盖
- POJ 1463 ||HDU 1054 Strategic game(二分图最小顶点覆盖)
- poj 1325 二分图最小点覆盖(机器模式的选择)
- hdu 1054 Strategic Game (二分图 最小顶点覆盖)
- poj3041 - Asteroids (二分图最小顶点覆盖)
- poj2226(*行列模型,二分图最小顶点覆盖)
- poj3041_Asteroids_二分图最小顶点覆盖
- hdu 1150二分图最小顶点覆盖
- ByteToString
- 常用矩阵计算C语言代码
- 常用内部控件(一)
- 抽象类中为什么不能有构造函数?
- struct inode 和 struct file
- poj 1325 二分图最小顶点覆盖(机器重启)
- Oracle分页查询
- printf/sprintf/tprintf的使用方法【待总结】
- HTTP协议详解
- 如何获得iphone的唯一标识符 UDID
- memset使用方法
- 第三章 标准库类型
- CSS中的Img样式
- android make常见错误