poj Selecting Courses(二分图最大匹配)
2011-11-16 21:27
288 查看
题目连接:http://poj.org/problem?id=2239
题意:在大学里能选N门课程,一个星期七天,一天12节课,但是在上课的时间会产生冲突。
已知每节课的上课时间,求最多能选多少门课
典型二分图最大匹配,不解释···········
匈牙利算法
题意:在大学里能选N门课程,一个星期七天,一天12节课,但是在上课的时间会产生冲突。
已知每节课的上课时间,求最多能选多少门课
典型二分图最大匹配,不解释···········
匈牙利算法
#include<iostream> #include<algorithm> #include<cstring> #include<vector> using namespace std; struct A {int x,y;}a; //保存每节课的上课时间 vector<A> s[301]; int t[8][13]; //t[i][j]表示该时间应该上哪节课 int v[8][13]; int n; int fun(int x) { for(int i=0;i<s[x].size();i++) { a=s[x][i]; if(!v[a.x][a.y]) { v[a.x][a.y]=1; if(t[a.x][a.y]==0||fun(t[a.x][a.y])) { t[a.x][a.y]=x;return 1; } } } return 0; } int main() { while(cin>>n) { for(int i=1;i<=n;i++) { int m;cin>>m;s[i].clear(); while(m--) { cin>>a.x>>a.y;s[i].push_back(a); } } memset(t,0,sizeof(t));int sum=0; for(int i=1;i<=n;i++) { memset(v,0,sizeof(v)); if(fun(i))sum++; } cout<<sum<<endl; } }
相关文章推荐
- poj Selecting Courses 2239 (二分图最大匹配)
- POJ1469[COURSES] 二分图最大匹配 匈牙利算法
- 【POJ1469】Courses-二分图最大匹配
- POJ 1469 COURSES(二分图最大匹配)
- 利用匈牙利算法&Hopcroft-Karp算法解决二分图中的最大二分匹配问题 例poj 1469 COURSES
- POJ 1469 COURSES(二分图最大匹配) (矩阵和邻接表的模板题)
- poj 1469 COURSES 二分图最大匹配数
- 【二分图最大匹配】【匈牙利算法】poj1469 COURSES && poj2446 Chessboard
- COURSES(poj1469,二分图最大匹配)
- POJ1469——COURSES(二分图最大匹配模板)
- poj 1469 COURSES 二分图最大匹配 匈牙利算法
- POJ1469_COURSES(二分图最大匹配)
- POJ 1469 COURSES 二分图最大匹配
- 【二分图|最大匹配】POJ-1469 COURSES
- POJ 1469 COURSES(匈牙利算法二分图最大匹配)
- poj 1469 COURSES (二分图最大匹配)
- POJ1469 COURSES 【二分图最大匹配·HK算法】
- POJ 1469 二分图最大匹配 COURSES
- POJ_1469_COURSES(二分图最大匹配)
- POJ 1469 COURSES(二分图最大匹配)