POJ - 2239 Selecting Courses 二分图 最大匹配
来源:互联网 发布:传奇盛世光翼进阶数据 编辑:程序博客网 时间:2024/05/22 12:45
题目大意:有n种课程,给出n种课的分布,问一个人最多可以选择多少种课(重复的不算)
解题思路:将课和分布情况分成两个点集,课在左边,然后求出最大匹配数就可以了
#include<cstdio>#include<cstring>#include<vector>using namespace std;const int N = 310;vector<int> Class[N];int n, link[N], vis[N];void init() { for(int i = 0; i < n; i++) Class[i].clear(); int t, p, q; for(int i = 0; i < n; i++) { scanf("%d", &t); for(int j = 0; j < t; j++) { scanf("%d%d", &p, &q); Class[i].push_back(p*12+q); } } memset(link,-1,sizeof(link));}bool dfs(int u) { for(int i = 0; i < Class[u].size(); i++) { if(vis[Class[u][i]]) continue; vis[Class[u][i]] = 1; if(link[Class[u][i]] == -1 || dfs(link[Class[u][i]])) { link[Class[u][i]] = u; return true; } } return false;}void hungary() { int ans = 0; for(int i = 0; i < n; i++) { memset(vis,0,sizeof(vis)); if(dfs(i)) ans++; } printf("%d\n", ans);}int main() { while(scanf("%d", &n) != EOF) { init(); hungary(); } return 0;}
0 0
- poj 2239 Selecting Courses 二分图最大匹配数
- poj 2239 Selecting Courses 二分图最大匹配
- Poj 2239 Selecting Courses 二分图最大匹配
- POJ 2239 Selecting Courses(二分图最大匹配)
- POJ 2239 Selecting Courses(二分图最大匹配)
- poj 2239 Selecting Courses 二分图最大匹配
- POJ 2239-Selecting Courses(二分图_最大匹配+哈希建图)
- poj 2239 Selecting Courses 【二分图最大匹配】
- POJ - 2239 Selecting Courses 二分图 最大匹配
- POJ 2239--Selecting Courses【二分图 && 最大匹配数 && 水题】
- POJ 2239 Selecting Courses(二分图最大匹配)
- poj Selecting Courses 2239 (二分图最大匹配)
- POJ 2239 Selecting Courses(二分图最大匹配)
- POJ-2239 Selecting Courses(二分图最大匹配)
- POJ 2239 - Selecting Courses(二分图匹配)
- poj Selecting Courses(二分图最大匹配)
- POJ 2239Selecting Courses(二分图最大匹配之最大匹配)
- poj 2239 Selecting Courses(二分图最大匹配or最大流)
- Linux网卡配置与绑定
- linux常用指令(二)
- nefu 553 念珠的差异
- 关于cron和crond,crontab以及bash脚本的写法等知识 cron的语法用法
- 操作系统--文件管理
- POJ - 2239 Selecting Courses 二分图 最大匹配
- 函数重载概念本质
- RabbitMQ消息队列:ACK机制
- eth0: ERROR while getting interface flags: No such device
- 常用的正则表达式
- 一个进程的诞生于死亡
- Python操作Mysql基础教程
- Java中goto是关键字吗?什么是Java的保留字?Java中关键字有哪些?
- js中获取上下文路径