HDU 1083 Courses(最大匹配模版题)
题目大意:
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
#define maxn 505
bool G[maxn][maxn];///图存储
bool vis[maxn];///标记点是否被遍历过
int P[maxn];///表示第i个学生选的是第P[i]门课程
int n, m;///n门课程 m个学生 bool Find(int u)
{
for(int i=; i<=m; i++)
{
if(G[u][i] && !vis[i])///判断第i个学生是否喜欢第U门课, 并且判断第i个学生是否被遍历过
{
vis[i] = true;///标记第i个学生被遍历过了
if( !P[i] || Find(P[i]) )/**判断第i个学生是否选过课了,如果选过了就看看能否更改这个学生所选的课程,让这个学生选u这门课*/
{///如果u这门课 i是可以选的,退出函数完成筛选,否则继续为u进行挑选学生,直到没有
P[i] = u;
return true;
}
}
}
return false;
} int main()
{
int T, v, j, i, k;
scanf("%d", &T); while(T--)
{
memset(G, false, sizeof(G));
memset(P, , sizeof(P));
scanf("%d %d",&n, &m); for(i=; i<=n; i++)
{
scanf("%d", &k);
while(k --)
{
scanf("%d", &v);
G[i][v] = true;
} } for(j=; j<=n; j++)
{/**我们每一次进行搜索的时候所有的点都要置为未遍历,因为我们每一次选课都要重新分配课程*/
memset(vis, false, sizeof(vis));
/**判断 j 课程是否找到了自己的学生**/
if( !Find(j) )
break;
} if( j == n + )
puts("YES");
else
puts("NO");
}
return ;
}
HDU 1083 Courses(最大匹配模版题)的更多相关文章
- hdu 1083 Courses (最大匹配)
CoursesTime Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- HDU 1083 Courses 【二分图完备匹配】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1083 Courses Time Limit: 20000/10000 MS (Java/Others) ...
- HDU 1083 - Courses - [匈牙利算法模板题]
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1083 Time Limit: 20000/10000 MS (Java/Others) M ...
- Courses HDU - 1083 (二分匹配模板题)
Consider a group of N students and P courses. Each student visits zero, one or more than one courses ...
- hdu 1083 Courses(二分图最大匹配)
题意: P门课,N个学生. (1<=P<=100 1<=N<=300) 每门课有若干个学生可以成为这门课的代表(即候选人). 又规定每个学生最多只能成为一门课的代 ...
- hdu - 1083 - Courses
题意:有P门课程,N个学生,每门课程有一些学生选读,每个学生选读一些课程,问能否选出P个学生组成一个委员会,使得每个学生代言一门课程(他必需选读其代言的课程),每门课程都被一个学生代言(1 <= ...
- HDU - 1083 Courses /POJ - 1469
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1083 http://poj.org/problem?id=1469 题意:给你P个课程,并且给出每个课 ...
- HDU 1083 Courses(二分图匹配模板)
http://acm.hdu.edu.cn/showproblem.php?pid=1083 题意:有p门课和n个学生,每个学生都选了若干门课,每门课都要找一个同学来表演,且一个同学只能表演一门课,判 ...
- CF 277.5 B.BerSU Ball 二分图的最大匹配 模版题
题意:求二分图的最大匹配数量 模版如下: //二分图匹配(匈牙利算法的DFS实现) //初始化:g[][]两边顶点的划分情况 //建立g[i][j]表示i->j的有向边就可以了,是左边向右边的匹 ...
随机推荐
- JQuery的Ajax跨域请求的
JQuery的Ajax跨域请求的(Ajax) 什么是jsonp格式呢?API原文:假设获取的数据文件存放在远程server上(域名不同.也就是跨域获取数据),则须要使用jsonp类型.使用这样的类型的 ...
- android ContentProvider学习
1.ContentProvider提供位存储或获取数据提供了统一的接口. 2.使用ContentProvider可以在不同的应用程序之间共享数据. 3.Android为常见的一些数据提供了Conten ...
- 再回首,Java温故知新(二):Java基本数据类型
Java作为一种强类型语言,意味着每一个变量都会有特定的类型,Java共有8种基本类型,其中有4种整型(byte.short.int.long).两种浮点型(float.double).1种字符型(c ...
- Java Math 类中的新功能--浮点数
Java™语言规范第 5 版向 java.lang.Math和 java.lang.StrictMath添加了 10 种新方法,Java 6 又添加了 10 种.这个共两部分的系列文章的 第 1 部分 ...
- Quarts SimpleTrigger going to BLOCKED state after few repeat intervals--stackoverflow
question: I am using SimpleTrigger to schedule a job which is supposed to run indefinitely (repeat c ...
- [转] openjdk和jdk的区别与联系
使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢? 历史上的 ...
- jsp页面禁用缓存
问题:为什么禁用JSP页面缓存 就是为了得到实时信息 怎样禁用JSP页面缓存 1.在JSP页面设置 <meta http-equiv="pragma" content=&qu ...
- python-增删改查
###增删改查 names = ["zhangding","wangxu","wudong","cheng"] #增 n ...
- niop 2003 传染病控制 (哎呀我氧化钙 坑了好久的搜索题)
/* 我觉得挺对的啊 实在是考虑不到有什么情况会判不了 70分 就这样吧 - - */ #include<iostream> #include<cstdio> #include ...
- Python 时间函数
时间的运用 #coding=utf-8 #!user/bin/python import time import calendar ticks = time.asctime(time.localtim ...