POJ 1469 COURSES (二分匹配) - from lanshui_Yang
来源:互联网 发布:哪个药店软件正品 编辑:程序博客网 时间:2024/06/06 09:20
题目大意:有 p 个学生和 n 门课 , 每一个门课程可以被多个学生选,问:在每个学生只能选一门课的情况下,能否使这 p 个学生每个人选的课程都不相同?
解题思路:这是一道简单的求最大匹配问题,只要求出此图的最大匹配,然后判断是否与 p 相等即可。
请看代码:
#include <iostream>#include <set>#include <algorithm>#include <map>#include <cstdio>#include <cstdlib>#include <stack>#include <cstring>#include <map>#include <vector>#include <string>#include <cmath>#define eps 1e-7#define mem(a , b) memset(a , b , sizeof(a) )using namespace std ;const int MAXN = 500 ;int linkx[MAXN] ;vector<int> G[MAXN] ;int p , n ;bool vis[MAXN] ;void chu(){ mem(linkx , -1) ; int i ; for(i = 0 ; i <= p ; i ++) G[i].clear() ;}void init(){ scanf("%d%d" , &p , &n) ; int i ; for(i = 1 ; i <= p ; i ++) { int d ; scanf("%d" , &d) ; int j ; for(j = 0 ; j < d ; j ++) { int t ; scanf("%d" , &t) ; G[i].push_back(t) ; } }}int dfs(int u){ int i ; for(i = 0 ; i < G[u].size() ; i ++) { int v = G[u][i] ; if(!vis[v]) { vis[v] = true ; if(linkx[v] == -1 || dfs(linkx[v])) { linkx[v] = u ; return 1 ; } } } return 0 ;}void solve(){ int i ; int ans = 0 ; for(i = 1 ; i <= p ; i ++) { mem(vis , 0) ; ans += dfs(i) ; } if(ans == p) { puts("YES") ; } else { puts("NO") ; }}int main(){ int T ; scanf("%d" , &T) ; while (T --) { chu() ; init() ; solve() ; } return 0;}
- POJ 1469 COURSES (二分匹配) - from lanshui_Yang
- POJ 1274 The Perfect Stall(二分匹配)- from lanshui_Yang
- poj 1469 COURSES(二分匹配模板)
- poj 1469 COURSES (二分图匹配)
- POJ 1469 COURSES(二分图匹配)
- POJ 1469 COURSES(二分匹配-hungary)
- poj 1469 COURSES 【二分匹配】
- poj 1469 COURSES (二分匹配)
- poj 1469 COURSES (二分图最大匹配)
- poj题目1469 COURSES (二分图匹配,匈牙利算法)
- poj 1469 COURSES(二分匹配 vector 邻接表 实现)
- POJ 1469 COURSES(匈牙利算法二分图最大匹配)
- POJ 1469-COURSES(二分图匹配入门-匈牙利算法)
- poj 1469 COURSES 二分图匹配初识
- poj 1469 COURSES 二分图匹配
- POJ 1469 二分图最大匹配 COURSES
- POJ 1469 COURSES(二分图最大匹配)
- COURSES - POJ 1469 二分图匹配
- ubuntu sublime2 安装
- 十八 Django 1.5.4 login_required
- 九九乘法表 的变态写法
- MFC 自定义消息实现与响应
- java学习笔记
- POJ 1469 COURSES (二分匹配) - from lanshui_Yang
- 收录:前端面试题
- 达林顿管,达林顿管原理
- 明明的随机数
- 使用SurfaceView完成地图无缝拼接
- 求四个数的最大公约数
- ViewPageIndicator中引入supportV4包时错误Error inflating class android.support.v4.view.ViewPager
- Javascript_1_语法
- Jquery ajax 出现 Error : Object object 竟依然是 URL链接没有给对