poj 3894 System Engineer (二分图最大匹配--匈牙利算法)
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 507 | Accepted: 217 |
Description
In the general case there are n jobs numbered from 0 to n-1, n servers numbered from n to 2*n-1, and a sequence of job requests. The problem asks to find the maximum number of jobs that can be processed.
Input
jobnumber: (nr_servers) s1 ... snr_servers The program prints the maximum number of jobs that can be processed.
White spaces can occur freely in the input. The input data are correct and terminate with an end of file.
Output
Sample Input
2
0: (1) 2
1: (1) 2
1
0: (1) 1
Sample Output
1
1
Hint
Source
Southeastern European Regional Programming Contest 2009
题意:分配工作。一个工作和一个人一一对应。
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std; struct edge
{
int to,next;
}e[100000];
int index; bool visit[10010]; //记录v2中的某个点是否被搜索过
int match[10010]; //记录与V2中的点匹配的点的编号
int head[10010];
int m,cnt; //向图中加边,注意加入的是有向边
//u为v的后继节点即v------>u
void addedge(int u,int v)
{
e[index].to=v;
e[index].next=head[u];
head[u]=index;
index++;
} //匈牙利算法(邻接表存图)
bool dfs(int u)
{
int i,v;
for(i=head[u];i;i=e[i].next)
{
v=e[i].to;
if(!visit[v]) //如果节点u与v相邻且未被查找过
{
visit[v]=true; //标记v已查找过
if(match[v]==-1||dfs(match[v])) //如果v未在前一个匹配M中,或者v在匹配M中,但是
{ //从与v相邻的节点出发可以有增广路径
match[v]=u; //记录查找成功,更新匹配即"取反"
return true; //返回查找成功。
}
}
}
return false;
} void init()
{
int aa,k,bb,i;
memset(head,0,sizeof(head)); //切记要初始化
memset(e,0,sizeof(e));
index=1;
for(i=1;i<=m;i++)
{
scanf("%d: (%d)",&aa,&k);
//printf("ok: %d %d\n",aa,k);
while(k--)
{
scanf("%d",&bb);
bb=bb-cnt+1;
addedge(bb,aa+1);
}
}
} int main()
{
int i;
while(scanf("%d",&cnt)!=EOF)
{
m=cnt;
init();
int ans=0;
memset(match,-1,sizeof(match));
for(i=1;i<=cnt;i++)
{
memset(visit,0,sizeof(visit)); //清空上次搜索时的标记
if(dfs(i)) //从i节点尝试扩展
ans++;
}
printf("%d\n",ans);
}
return 0;
}
poj 3894 System Engineer (二分图最大匹配--匈牙利算法)的更多相关文章
- poj - 3041 Asteroids (二分图最大匹配+匈牙利算法)
http://poj.org/problem?id=3041 在n*n的网格中有K颗小行星,小行星i的位置是(Ri,Ci),现在有一个强有力的武器能够用一发光速将一整行或一整列的小行星轰为灰烬,想要利 ...
- 二分图最大匹配(匈牙利算法) POJ 3041 Asteroids
题目传送门 /* 题意:每次能消灭一行或一列的障碍物,要求最少的次数. 匈牙利算法:把行和列看做两个集合,当有障碍物连接时连一条边,问题转换为最小点覆盖数==二分图最大匹配数 趣味入门:http:// ...
- 二分图最大匹配(匈牙利算法) POJ 3020 Antenna Placement
题目传送门 /* 题意:*的点占据后能顺带占据四个方向的一个*,问最少要占据多少个 匈牙利算法:按坐标奇偶性把*分为两个集合,那么除了匹配的其中一方是顺带占据外,其他都要占据 */ #include ...
- UESTC 919 SOUND OF DESTINY --二分图最大匹配+匈牙利算法
二分图最大匹配的匈牙利算法模板题. 由题目易知,需求二分图的最大匹配数,采取匈牙利算法,并采用邻接表来存储边,用邻接矩阵会超时,因为邻接表复杂度O(nm),而邻接矩阵最坏情况下复杂度可达O(n^3). ...
- Ural1109_Conference(二分图最大匹配/匈牙利算法/网络最大流)
解题报告 二分图第一题. 题目描写叙述: 为了參加即将召开的会议,A国派出M位代表,B国派出N位代表,(N,M<=1000) 会议召开前,选出K队代表,每对代表必须一个是A国的,一个是B国的; ...
- HDU 1045 - Fire Net - [DFS][二分图最大匹配][匈牙利算法模板][最大流求二分图最大匹配]
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1045 Time Limit: 2000/1000 MS (Java/Others) Mem ...
- HDU1068 (二分图最大匹配匈牙利算法)
Girls and Boys Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDU - 1045 Fire Net (二分图最大匹配-匈牙利算法)
(点击此处查看原题) 匈牙利算法简介 个人认为这个算法是一种贪心+暴力的算法,对于二分图的两部X和Y,记x为X部一点,y为Y部一点,我们枚举X的每个点x,如果Y部存在匹配的点y并且y没有被其他的x匹配 ...
- 51Nod 2006 飞行员配对(二分图最大匹配)-匈牙利算法
2006 飞行员配对(二分图最大匹配) 题目来源: 网络流24题 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 第二次世界大战时期,英国皇家空军从沦陷国 ...
随机推荐
- [Hapi.js] Up and running
hapi is a rock solid server framework for Node.js. Its focus on modularity and configuration-over-co ...
- Linux 挂载命令 --mount
1.挂载光盘命令 mount : mount [-t vfstype] [-o options] device dir mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点 -t ...
- android——混淆打包
网上搜了一大堆,在此不一一赘诉. 直接讲解了 如上图这么配置,其实就是加上一句话而已.告诉打包工具混淆打包的代码放在./proguard-project.txt这里 proguard.config=. ...
- MVC View基础(转)
View主要用于呈现数据.由于Controller和相关的Service已经处理完业务逻辑并将结果打包成model实体,View只需要怎么去获得model并将其转为Html 1选择需要渲染的视图 在上 ...
- C#鼠标键盘钩子
using System;using System.Collections.Generic; using System.Reflection; using System.Runtime.Interop ...
- JS 根据Url参数名称来获取对应的值 方法封装
function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...
- 虚拟机VirtualBox和Ubutu
虚拟机的作用1. 演示环境,可以安装各种演示环境,便于做各种例子: 2. 保证主机的快速运行,减少不必要的垃圾安装程序,偶尔使用的程序,或者测试用的程序在虚拟机上运行: 3. 避免每次重新安装,银行等 ...
- python调用ice接口
今天用python调用ice接口,遇到如下提示 ImportError: No module named Ice 解决方案是 set PYTHONPATH=C:\Program Files\ZeroC ...
- [转载]Silverlight实用窍门系列:71.Silverlight的Style
本文版权归作者和博客园共有,欢迎转载,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 原文链接:http://www.cnblogs.com/chengx ...
- css3属性:column分栏
css3选择器中提出了分栏的属性,其浏览器支持情况为:Internet Explorer 10 和 Opera 支持 column 属性,Firefox 支持替代的 -moz-column 属性,Sa ...