hdu 1083 Courses(二分图最大匹配)
题意:
P门课,N个学生。 (1<=P<=100 1<=N<=300)
每门课有若干个学生可以成为这门课的代表(即候选人)。
又规定每个学生最多只能成为一门课的代表(即要专一)。
问是否存在一种安排方案使得每门课都有代表。
思路:
二分图最大匹配经典,,看代码。
代码:
int T,n,p;
vector<int> graph[505];
bool bmask[505];
int cx[505],cy[505]; int findPath(int u){
int L=graph[u].size();
rep(i,0,L-1){
int v=graph[u][i];
if(!bmask[v]){
bmask[v]=true;
if(cy[v]==-1||findPath(cy[v])){
cy[v]=u;
cx[u]=v;
return 1;
}
}
}
return 0;
}
int MaxMatch(){
int ans=0;
rep(i,1,p) cx[i]=-1;
rep(i,1,n) cy[i]=-1;
rep(i,1,p) if(cx[i]==-1){
mem(bmask,false);
ans+=findPath(i);
}
return ans;
}
int main(){
cin>>T;
while(T--){
scanf("%d%d",&p,&n);
rep(i,1,p) graph[i].clear(); //p kinds of class
rep(i,1,p){
int x,a;
scanf("%d",&x); //student num
while(x--){
scanf("%d",&a);
graph[i].push_back(a);
}
}
int dd=MaxMatch();
if(dd!=p)
puts("NO");
else
puts("YES");
}
}
hdu 1083 Courses(二分图最大匹配)的更多相关文章
- HDU 1083 Courses(最大匹配模版题)
题目大意: 一共有N个学生跟P门课程,一个学生可以任意选一 门或多门课,问是否达成: 1.每个学生选的都是不同的课(即不能有两个学生选同一门课) 2.每门课都有一个代表(即P门课都被成功选过 ...
- HDU 1083 Courses 【二分图完备匹配】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1083 Courses Time Limit: 20000/10000 MS (Java/Others) ...
- POJ 1469 COURSES 二分图最大匹配 二分图
http://poj.org/problem?id=1469 这道题我绝壁写过但是以前没有mark过二分图最大匹配的代码mark一下. 匈牙利 O(mn) #include<cstdio> ...
- HDU-1083 Courses 二分图 最大匹配
题目链接:https://cn.vjudge.net/problem/HDU-1083 题意 有一些学生,有一些课程 给出哪些学生可以学哪些课程,每个学生可以选多课,但只能做一个课程的代表 问所有课能 ...
- HDU 1083 Courses(二分图匹配模板)
http://acm.hdu.edu.cn/showproblem.php?pid=1083 题意:有p门课和n个学生,每个学生都选了若干门课,每门课都要找一个同学来表演,且一个同学只能表演一门课,判 ...
- hdu 1083 Courses (最大匹配)
CoursesTime Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- HDU 1083 - Courses - [匈牙利算法模板题]
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1083 Time Limit: 20000/10000 MS (Java/Others) M ...
- HDU - 1083 Courses /POJ - 1469
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1083 http://poj.org/problem?id=1469 题意:给你P个课程,并且给出每个课 ...
- [POJ] 2239 Selecting Courses(二分图最大匹配)
题目地址:http://poj.org/problem?id=2239 Li Ming大学选课,每天12节课,每周7天,每种同样的课可能有多节分布在不同天的不同节.问Li Ming最多可以选多少节课. ...
随机推荐
- [CSP-J2020] 优秀的拆分
[CSP-J2020] 优秀的拆分 难度:普及- 题目描述 一般来说,一个正整数可以拆分成若干个正整数的和. 例如,1=1,10=1+2+3+4 等.对于正整数 n 的一种特定拆分,我们称它为&quo ...
- Elasticsearch(ES)的滚动搜索与批量操作
1. 概述 今天我们来聊一下Elasticsearch(ES)的滚动搜索与批量操作. 2. Elasticsearch(ES)的滚动搜索 2.1 概述 滚动搜索我们经常能够用到,例如:推荐列表,此类 ...
- Groovy系列(2)- Groovy与Java的不同之处
Groovy与Java的不同之处 默认 imports 所有这些包和类都是默认导入的,不必使用显式import语句来使用它们 java.io.* java.lang.* java.math.BigDe ...
- Linux系列(27) - 三剑客grep、awk、sed
Linux下一切皆文件,对Linux的操作就是对文件的处理 Linux中最重要的三个命令在业界被称为"三剑客",它们是awk,sed,grep 正则表达式就好比一个模版,这个模板就 ...
- Layui的落幕,是否预示一个时代的结束?
1.今天,看到LayUi(读音类UI)官方说,LayUI官网将关闭,多少有些伤感. 或许,有人会所,通知里也说了,"新版下载.文档和示例等仍会在Github 和 Gitee" 但, ...
- struts2 中 form-action action-form 的传参方式
1. struts2 Action获取表单提交数据 主要有三种方式: 1.1 使用ActionContext类 //获取actionContext对象 ActionContext context = ...
- django setting.py配置文件解读-02
定义项目目录常量 import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR ...
- python读取文件编码转换问题
encode(编码) decode(解码) encoding(编码格式) #-*- coding:utf-8 -*- import chardet #用于查看编码 with open(&quo ...
- [转载]CentOS 下安装LEMP服务(Nginx、MariaDB/MySQL和PHP)
LEMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作用.正如其名称所暗示的, LEMP 包是由 Linux.nginx.MariaDB/MySQL 和 P ...
- Dockerfile 的常用参数注解和范例
一. docker hello world 1.1 Dockerfile FROM centos:7.5.1804 MAINTAINER 11@qq.com CMD echo "hello ...