hoj 2472 IR-Lab
2012-04-07 16:00
246 查看
/*
题目:
值班问题,给出所有人的空余时间,问能不能够在每一个时间里安排一个人值班
分析:
二分匹配问题,按人与他的空余时间连线构图,然后就是hungry算法了,简单
*/
#include
<iostream>
#include
<cstring>
#include
<cstdio>
using namespace
std;
#define X 22
bool
g[X][X],use[X];
int
xm[X],ym[X],k,p;
bool dfs(int u)
{
for(int v=0;v<k;v++)
if(g[u][v]&&!use[v])
{
use[v] = true;
if(ym[v]==-1||dfs(ym[v]))
{
xm[u] = v;
ym[v] = u;
return true;
}
}
return false;
}
int hungry()
{
int ret = 0;
memset(xm,-1,sizeof(xm));
memset(ym,-1,sizeof(ym));
for(int u=0;u<p;u++)
if(xm[u]==-1)
{
memset(use,false,sizeof(use));
if(dfs(u))
ret++;
}
return ret;
}
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
while(cin>>k>>p,k||p)
{
int t,x;
memset(g,false,sizeof(g));
for(int i=0;i<p;i++)
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&x);
g[i][x] = true;//该人与他的空余时间连通
}
}
if(hungry()==k) //如果能够安排好的话
printf("yes\n");
else
printf("no\n");
//printf("%d\n",hungry());
}
return 0;
}
题目:
值班问题,给出所有人的空余时间,问能不能够在每一个时间里安排一个人值班
分析:
二分匹配问题,按人与他的空余时间连线构图,然后就是hungry算法了,简单
*/
#include
<iostream>
#include
<cstring>
#include
<cstdio>
using namespace
std;
#define X 22
bool
g[X][X],use[X];
int
xm[X],ym[X],k,p;
bool dfs(int u)
{
for(int v=0;v<k;v++)
if(g[u][v]&&!use[v])
{
use[v] = true;
if(ym[v]==-1||dfs(ym[v]))
{
xm[u] = v;
ym[v] = u;
return true;
}
}
return false;
}
int hungry()
{
int ret = 0;
memset(xm,-1,sizeof(xm));
memset(ym,-1,sizeof(ym));
for(int u=0;u<p;u++)
if(xm[u]==-1)
{
memset(use,false,sizeof(use));
if(dfs(u))
ret++;
}
return ret;
}
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
while(cin>>k>>p,k||p)
{
int t,x;
memset(g,false,sizeof(g));
for(int i=0;i<p;i++)
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&x);
g[i][x] = true;//该人与他的空余时间连通
}
}
if(hungry()==k) //如果能够安排好的话
printf("yes\n");
else
printf("no\n");
//printf("%d\n",hungry());
}
return 0;
}
相关文章推荐
- hoj 2558 二维最大子段和
- Hoj 3145 Alpaka Evolution
- 转载:Tips for Writing Technical Papers (Jennifer Widom, Infolab of sanford.edu)
- Hoj 1868 八数码问题
- HOJ 2685 POJ 2777 Count Color
- Android内核驱动-红外驱动IR
- 如何做研究(MIT AI Lab)
- hoj 1005 fast food
- [hoj 2901]Calculation[二项式定理]
- hoj 2739 中国邮局问题
- IGP-OSPF-LAB-P2P(Area0)
- Hoj 2084 The Colored Cubes (polya计数)
- RH033读书笔记(2)-Lab 3 Getting Help with Commands
- RH033读书笔记(12)-Lab 13 Finding and Processing Files
- RH133读书笔记(11)-Lab 11 System Rescue and Troubleshooting
- HOJ 3140 乌龟棋
- 图像在rgb和lab空间之间的转换
- 搜索 HOJ 1736 A Game on the Chessboard
- 搜索 HOJ 1126 Smith Numbers
- (简单)搜索 HOJ 1070 Word