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 难度:基础题 收藏 关注 第二次世界大战时期,英国皇家空军从沦陷国 ...
随机推荐
- UVA247- Calling Circles(有向图的强连通分量)
题目链接 题意: 给定一张有向图.找出全部强连通分量,并输出. 思路:有向图的强连通分量用Tarjan算法,然后用map映射,便于输出,注意输出格式. 代码: #include <iostrea ...
- iOS经常使用的加密算法
在iOS开发中,为了数据的安全经常对内容进行加密,在这儿我们对经常使用的加密算法进行了总结: 1.MD5 <span style="font-size:18px;">+ ...
- kaggle之手写体识别
kaggle地址 数据预览 首先载入数据集 import pandas as pd import numpy as np train = pd.read_csv('/Users/frank/Docum ...
- js简单排序
简单的排序功能 HTML代码: <body> <input id="btn1" type="button" value="排序&qu ...
- Func 委托 和 Action 委托 初步谈论
继上篇EventHandler之后,继续填坑,简单了解下Func<TResult> 委托 和 Action 委托. msdn对于两者的解释: Func<TResult>:封装一 ...
- .net程序员转战android第三篇---登录模块之静态登录
这一篇我将分2个部分记录登录界面,第一部分是静态登录, 这部分将如何从界面布局.控件使用.文件关系.数据验证.登陆实现等5小块记录. 第二部分是动态登录,这块会基于上面的4小块,在数据验证不是静态数据 ...
- c#中传递参数前加out
首先:两者都是按地址传递的,使用后都将改变原来参数的数值. 其次: rel 可以把参数的数值传递进函数,但是 out 是要把参数清空,就是说你无法把一个数值 从 out 传递进去的, out 进去后, ...
- Webfrom基础知识
MyBeNASP.NET内置对象 (1)简述ASP.NET内置对象. 答:ASP.NET提供了内置对象有Page.Request.Response.Application.Session.Server ...
- ZendFramework 环境部署
查看源码 int_autoloader.php 文件中,发现应用了一个 AutoloaderFactory 的命名空间,路径写得是相对路径,所以需要在 php.ini 中定义一个 inclde_pat ...
- C#代码实现,确保windows程序只有一个实例(instance)
static class Program { /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] static vo ...