poj_1469 COURSES匈牙利算法
2014-09-26 12:42
363 查看
说明:注意cin会TLE,使用scanf读。vs2013使用更安全的scanf_s代替scanf。
源代码:
源代码:
#include <iostream> #include <fstream> using namespace std; int cases; int n, p; int num; int map[110][310]; int student; int result,link[310]; bool visit[310]; bool dfs(int x) { for (int y = 1; y <= n; y++) { if (map[x][y] == 1 && !visit[y]) { visit[y] = true; if (link[y] == 0 || dfs(link[y])) { link[y] = x; return true; } } } return false; } void search() { result = 0; memset(link,0,sizeof(link)); for (int x = 1; x <= p; x++) { memset(visit,false,sizeof(visit)); if (dfs(x)) result++; } } int main() { //ifstream in("input.txt"); scanf_s("%d",&cases); for (int i = 1; i <= cases; i++) { scanf_s("%d%d", &p, &n); memset(map, 0, sizeof(map)); for (int j = 1; j <= p; j++)//P courses : from 1 to p { scanf_s("%d", &num); for (int k = 1; k <= num; k++) { scanf_s("%d", &student); map[j][student] = 1; } } search(); if (result == p) { cout << "YES" << endl; } else { cout << "NO" << endl; } }//end cases //system("pause"); return 0; }
相关文章推荐
- POJ 1469 COURSES(匈牙利算法二分图最大匹配)
- POJ 1469 COURSES【匈牙利算法入门 二分图的最大匹配 模板题】
- 【二分图最大匹配】【匈牙利算法】poj1469 COURSES && poj2446 Chessboard
- POJ-1469 COURSES ( 匈牙利算法 dfs + bfs )
- POJ1469[COURSES] 二分图最大匹配 匈牙利算法
- poj题目1469 COURSES (二分图匹配,匈牙利算法)
- POJ 1469 COURSES (二分图最大匹配 匈牙利算法)
- poj1469 COURSES(匈牙利算法)(解题报告)
- POJ 1469 COURSES【匈牙利算法入门 二分图的最大匹配 模板题】
- poj 1469 COURSES 二分图最大匹配 匈牙利算法
- 匈牙利算法 (poj1422-Air Raid,poj1469-COURSES)
- POJ:1469 COURSES(匈牙利算法模版题)
- poj 1469 COURSES(匈牙利算法模板)
- 利用匈牙利算法&Hopcroft-Karp算法解决二分图中的最大二分匹配问题 例poj 1469 COURSES
- POJ 1469-COURSES(二分图匹配入门-匈牙利算法)
- poj 1469 COURSES 匈牙利算法
- zoj 1140 poj 1469 COURSES(二分图匹配 匈牙利算法)
- 二分图(bfs+匈牙利算法) POJ 1469 course
- Poj1469_匈牙利算法_最大二分匹配
- poj 1469 二分匹配——匈牙利算法