hdu 1150 Machine Schedule(最小点覆盖)
2015-07-24 09:57
204 查看
//hdu 1150 //把job看成是一条边,选某个点,就表示某个点要重启一次,实际上,某个点最多需要选择一次就够了。 //因为如果重启两次的话,第二次的任务肯定在第一次的时候可以完成。 //最小点覆盖=最大匹配 #include<cstdio> #include<cstring> #include<iostream> using namespace std; const int N=110; int n,m,k; int g[110][110]; struct Hungary{ int line ,vis ; void init(){ memset(line,-1,sizeof(line)); } bool dfs(int u,int m){ for(int i=0;i<m;i++){ if(!vis[i]&&g[u][i]){ vis[i]=1; if(line[i]==-1||dfs(line[i],m)){ line[i]=u; return 1; } } } return 0; } int Max_match(int n,int m){ int all=0; for(int i=0;i<n;i++){ memset(vis,0,sizeof(vis)); if(dfs(i,m))all+=1; } return all; } }; Hungary huy; int main(){ while(scanf("%d",&n),n){ scanf("%d%d",&m,&k); memset(g, 0, sizeof(g)); for(int i=0;i<k;i++){ int j,x,y; scanf("%d%d%d",&j,&x,&y); if(x>0&&y>0)g[x][y]=1;//0的时候不需要重启 } huy.init(); printf("%d\n",huy.Max_match(n,m)); } return 0; }
相关文章推荐
- ZOJ 3434 Hiiragi's Sticks
- 目标检测程序开发(二)——Boosting算法简介
- 图像分析------连通组件标记算法
- Win-XP-2000-2003下如何重装TCP/IP协议
- FineReport制作可动态展开的组织递归树报表
- 使用SecureCRT在远程主机和本地之间传输文件
- 图像分析------连通组件标记算法 分类: 视频图像处理 2015-07-24 09:57 32人阅读 评论(0) 收藏
- 【ubuntu操作系统入门】Ubuntu常用命令大全一
- int与char数组及string转换
- Lua 中的另类For循环
- Spring -- spEL&Bean的生命周期&工厂方法配置Bean
- Java中获得数据库连接的几种方法
- 学习JVM
- 图像处理------基于像素的皮肤检测技术
- 图像处理------基于像素的皮肤检测技术
- iOS开发-清理缓存功能的实现
- 程序优化之循环展开
- 图像处理------基于像素的皮肤检测技术
- Android中dp,px,sp概念梳理以及如何做到屏幕适配
- 华为交换机端口-MAC绑定AND解除绑定