hdu 1083 Courses (最大匹配)
Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 10769 Accepted Submission(s): 5077
Consider a group of N students and P courses. Each student visits zero, one or more than one courses. Your task is to determine whether it is possible to form a committee of exactly P students that satisfies simultaneously the conditions:
Count1 Student1 1 Student1 2 ... Student1 Count1
Count2 Student2 1 Student2 2 ... Student2 Count2
......
CountP StudentP 1 StudentP 2 ... StudentP CountP
2
3 3
3 1 2 3
2 1 2
1 1
3 3
2 1 3
2 1 3
1 1
YES
NO
C/C++:
#include <map>
#include <queue>
#include <cmath>
#include <vector>
#include <string>
#include <cstdio>
#include <cstring>
#include <climits>
#include <iostream>
#include <algorithm>
#define INF 0xffffff
using namespace std;
const int my_max = ; int P, N, my_line[my_max][my_max], my_book[my_max], my_right[my_max], b, n, my_ans; bool my_dfs(int x)
{
for (int i = ; i <= N; ++ i)
{
if (!my_book[i] && my_line[x][i])
{
my_book[i] = ;
if (!my_right[i] || my_dfs(my_right[i]))
{
my_right[i] = x;
return true;
}
}
}
return false;
} int main()
{
int t;
scanf("%d", &t);
while (t --)
{
my_ans = ;
memset(my_line, , sizeof(my_line));
memset(my_right, , sizeof(my_right)); scanf("%d%d", &P, &N);
for (int i = ; i <= P; ++ i)
{
scanf("%d", &n);
while (n --)
{
scanf("%d", &b);
my_line[i][b] = ;
}
} for (int i = ; i <= P; ++ i)
{
memset(my_book, , sizeof(my_book));
if (my_dfs(i)) my_ans ++;
} if (my_ans == P)
printf("YES\n");
else
printf("NO\n");
}
return ;
}
hdu 1083 Courses (最大匹配)的更多相关文章
- HDU 1083 Courses 【二分图完备匹配】
		传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1083 Courses Time Limit: 20000/10000 MS (Java/Others) ... 
- hdu 1083 Courses(二分图最大匹配)
		题意: P门课,N个学生. (1<=P<=100 1<=N<=300) 每门课有若干个学生可以成为这门课的代表(即候选人). 又规定每个学生最多只能成为一门课的代 ... 
- HDU 1083   Courses(最大匹配模版题)
		题目大意: 一共有N个学生跟P门课程,一个学生可以任意选一 门或多门课,问是否达成: 1.每个学生选的都是不同的课(即不能有两个学生选同一门课) 2.每门课都有一个代表(即P门课都被成功选过 ... 
- 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个课程,并且给出每个课 ... 
- hdu - 1083 - Courses
		题意:有P门课程,N个学生,每门课程有一些学生选读,每个学生选读一些课程,问能否选出P个学生组成一个委员会,使得每个学生代言一门课程(他必需选读其代言的课程),每门课程都被一个学生代言(1 <= ... 
- HDU 1083 Courses(二分图匹配模板)
		http://acm.hdu.edu.cn/showproblem.php?pid=1083 题意:有p门课和n个学生,每个学生都选了若干门课,每门课都要找一个同学来表演,且一个同学只能表演一门课,判 ... 
- HUD——1083 Courses
		HUD——1083 Courses Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ... 
- (匹配)Courses -- hdu --1083
		链接: http://acm.hdu.edu.cn/showproblem.php?pid=1083 http://acm.hust.edu.cn/vjudge/contest/view.action ... 
随机推荐
- PHP call_user_func的一些用法和注意点
			版本:PHP 5.6.28 在call_user_func的调用中: 1.参数的传递过程,并不是引用传值. 1 error_reporting(E_ERROR); // 此处不是E_ALL 2 $cu ... 
- Spring 事务笔记
			代码写着写着就钻进源码了. 概念 InfrastructureProxy 结构代理 百度查了查,这个类还没有解释. 进去看了一下: Interface to be implemented by tra ... 
- 查看线上日志利器less
			less实用命令 搜索 很多关于命令的解释有点令人困惑,因为前字,forward是向前,before也是前面. 上表示backward 下表示forward 向下搜索 / - 使用一个模式进行搜索,并 ... 
- JAVA eclipse 问题汇总(持续更新)
			解决eclipse中文字很小 新下载的eclipse4.2.1版本,显示中文字体很小,但是英文比较正常.网上查看要更改字体大小,但是更改后英文也变大了,不是想要的结果.window – prefere ... 
- java入门到秃路线导航,元芳你怎么看?【教学视频+博客+书籍整理】
			目录 一.Java基础 二.关于JavaWeb基础 三.关于数据库 四.关于ssm框架 五.关于数据结构与算法 六.关于开发工具idea 七.关于项目管理工具Mawen.Git.SVN.Gradle. ... 
- Mysql数据库(一)数据库设计概述
			1.数据库的体系结构 1.1 数据库系统的三级模式结构是指模式.外模式和内模式. 1.2 三级模式之间的映射分为外模式/模式映射和模式/内模式映射. 2.E-R图也称“实体-关系图”,用于描述现实世界 ... 
- Java基础(十五)异常(Exception)
			1.处理错误的要求 如果由于出现错误而使得某些操作没有完成,程序应该: 返回到一种安全状态,并能够让用户执行一些其他的命令. 允许用户保存所有操作的结果,并以妥善的方式终止程序. 2.程序中可能出现的 ... 
- 深度学习框架Tensorflow应用(Google工程师)
			首先在这里给大家分享Google工程师亲授 Tensorflow2.0-入门到进阶教程 有需要的小伙伴可点击进入扣群下载,群内不定期的会分享资料教程,点击直达链接:https://jq.qq.com/ ... 
- Vue中错误图片的处理
			在一个Vue的PC项目中,要求给错误图片不要让它显示丑陋的图片,就要给图片写一个失败后的默认图片, 在这里写了两种方法, 第一种方法,也就是百度到的最多的代码,就是给一张图片一个默认值. 第二种问题, ... 
- HTML5部分基础知识
			web前端开发 一个XML的简单应用 代码如下: <?xml version="1.0" encoding="utf-8"?> <svg wi ... 
