题意:

有P门课,N个学生,给出每门课上的人。

然后问你能不能使得每门课有一个课代表

思路:

课和学生是两类,且同类之间没有关系,构成二分图;直接就是一个最大匹配问题;

注意点:

1.是给课进行匹配不是学生

2.比如二分图有A,B两类,A与B允许编号相同,但是如果A中的点到B中的点建边,

这个意义是A对B有关系,B能去匹配A,这一定不是双向边,双向边就额外多了层关系啊,

而且如果有额外匹配空间是利用一个配偶数组(就是存匹配对象的配偶,其实就是A->B->A),然后去询问A还能不能额外在匹配一个;

#include<bits/stdc++.h>
using namespace std;
typedef long long LL; const int N=6e4+10;
const int M=4e2+10; struct asd{
int to;
int next;
};
asd q[N];
int head[N],tol;
int cy[M],p,n;
bool vis[M]; void init()
{
tol=0;
memset(head,-1,sizeof(head));
} void add(int u,int v)
{
q[tol].to=v;
q[tol].next=head[u];
head[u]=tol++;
} bool Find(int u)
{
for(int i=head[u];i!=-1;i=q[i].next)
{
int v=q[i].to;
if(!vis[v])
{
vis[v]=true;
if(cy[v]==-1||Find(cy[v]))
{
cy[v]=u;
return true;
}
}
}
return false;
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&p,&n);
int num,x;
init();
for(int i=0;i<p;i++){
scanf("%d",&num);
while(num--)
{
scanf("%d",&x);
add(i,x);
}
}
int ans=0;
memset(cy,-1,sizeof(cy));
for(int i=0;i<p;i++)
{
memset(vis,0,sizeof(vis));
if(Find(i))
ans++;
}
if(ans!=p)
puts("NO");
else
puts("YES");
}
return 0;
}

最新文章

  1. If &amp; Else 语句
  2. final static 深度解析
  3. express-14 发送邮件
  4. Ubuntu Linux上安装配置Mysql
  5. 调用gluNurbsCurve绘制圆弧
  6. lightning mdb 源代码分析(4)&mdash;MVCC/COW
  7. root 授权
  8. Linux shell 脚本小记
  9. 第一章 基本的SQL语句 (SQL基础)
  10. pod 命令-bash: --: command not found
  11. part3
  12. 论山寨手机与Android 【14】3G SmartPhone时代的MTK
  13. Oracle实用-01:绑定变量
  14. git 简易使用说明
  15. ios VS android
  16. chart 目录结构 - 每天5分钟玩转 Docker 容器技术(164)
  17. DevExpress ChartControl ViewType.Line
  18. 20165305 实验三 敏捷开发与XP实践
  19. U盘启动ubuntu 12.04
  20. AHK教程 - imsoft.cnblogs

热门文章

  1. JMeter中使用Put请求方式请求接口
  2. Spring与JDK版本不一致引发问题Caused by: java.lang.IllegalArgumentException
  3. wpf Style也继承(包含内部定义事件)
  4. 【BZOJ2625】[Neerc2009]Inspection 最小流
  5. (t,p,o) t:p&gt;=o there cannot be more consumer instances in a consumer group than partitions
  6. MARA 附加结构(增强字段)
  7. Cocos2d-x如何添加新场景及切换新场景(包括场景特效)
  8. Centos7利用kvm搭建Windows虚拟机
  9. [NOIP2011提高组day2]-1-计算系数
  10. Ubuntu 14.04 下 android studio 安装 和 配置【转】