hdu1150 Machine Schedule
来源:互联网 发布:linux cp多个文件 编辑:程序博客网 时间:2024/05/16 08:42
将A和B分为2分图的两边,对于每个工作(i,x,y),就在两个点上连一条边,这条边就是工作,这样问题就转化成了用最少的点覆盖所有的边,即二分图的最小点覆盖。
code:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int MAXN = 110;int n,m,k;bool graph[MAXN][MAXN];bool vis[MAXN];int link[MAXN];int find(int x){ int y; for(y=1;y<=m;y++) { if(graph[x][y] && !vis[y]) { vis[y]=true; if(link[y]==0 || find(link[y])) { link[y]=x; return true; } } } return false;}int main(){ int i,j,a,b,c,ans; while(~scanf("%d",&n)&&n) { scanf("%d%d",&m,&k); ans=0; memset(link,0,sizeof(link)); memset(graph,0,sizeof(graph)); for(i=1;i<=k;i++) { scanf("%d%d%d",&a,&b,&c); graph[b][c]=1; } for(i=1;i<=n;i++) { memset(vis,0,sizeof(vis)); if(find(i)) ans++; } printf("%d\n",ans); } return 0;}
- hdu1150 Machine Schedule
- hdu1150 Machine Schedule
- HDU1150:Machine Schedule
- HDU1150-Machine Schedule
- hdu1150 Machine Schedule
- HDU1150 Machine Schedule
- hdu1150 Machine Schedule
- hdu1150——Machine Schedule
- hdu1150 Machine Schedule 最小点覆盖
- HDU1150 Machine Schedule(匈牙利算法)
- hdu1150 Machine Schedule(最小点覆盖)
- 二分匹配之HDU1150 Machine Schedule
- HDU1150 Machine Schedule(最小顶点覆盖)
- HDU1150:Machine Schedule(最小点覆盖)
- hdu1150 Machine Schedule 最小点覆盖
- HDU1150-- Machine Schedule( 二分图最小顶点覆盖)
- hdu1150 Machine Schedule (二分图的最小顶点覆盖)
- 【图算法之二分图】HDU1150---Machine Schedule
- 由init、loadView、viewDidLoad、viewDidUnload、dealloc的关系说起
- 使用IDE与maven建立工程-1
- opencascade 计算点与TopoDS_Shape中各个点的距离
- android混淆编译 ---- 问题汇总
- ASM迁移(beta版)
- hdu1150 Machine Schedule
- 学习技巧
- JavaScript Try...Catch 语句
- 轻松搭建一个Windows SVN服务器
- HttpClient---Apache Jakarta Common
- TortoiseSVN使用帮助和下载
- 二 : using声明、using指示用于嵌套命名空间时的作用域
- C++ Traits
- android MQTT推送方案的实现