poj2239 poj1274【二分匹配】
来源:互联网 发布:mac windows 截图 编辑:程序博客网 时间:2024/05/18 02:02
题意:
就是尽可能的选多的课
思路:
把课程和上课的时间看作二分图
跑一跑二分匹配就好了
#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f#define N 350int cos[10][20];int ma[N][N];bool vis[N];int n;int cx[N];int cy[N];int cnt;//建立课程时间的图void init(){ cnt=1; for(int i=1;i<=7;i++) { for(int j=1;j<=12;j++) { cos[i][j]=cnt++; } }}int findpath(int u){ for(int i=1;i<cnt;i++) { if(!vis[i]&&ma[u][i]) { vis[i]=1; if(cy[i]==-1||findpath(cy[i])) { cy[i]=u; cx[u]=i; return 1; } } } return 0;}int main(){ init(); while(~scanf("%d",&n)) { memset(ma,0,sizeof(ma)); for(int i=1;i<=n;i++) { int x,a,b; scanf("%d",&x); for(int j=1;j<=x;j++) { scanf("%d%d",&a,&b); ma[i][cos[a][b]]=1; } } memset(cx,-1,sizeof(cx)); memset(cy,-1,sizeof(cy)); int ans=0; for(int i=1;i<=n;i++) { if(cx[i]==-1) { memset(vis,0,sizeof(vis)); ans+=findpath(i); } } printf("%d\n",ans); } return 0;}
题意:
(二分匹配基础题)
每个奶牛有自己喜欢去的谷仓,然后问最多有多少奶牛到了自己喜欢的谷仓;
思路:
把牛和谷仓作为二分图,跑一下匈牙利
#include<iostream>#include<cstdio>#include<math.h>#include<stdlib.h>#include<vector>#include<string.h>#include<algorithm>using namespace std;typedef long long LL;#define INF 0x3f3f3f3f#define PI acos(-1.0)#define N 210int cx[250];int cy[250];bool vis[250];int ma[250][250];int n,m;int fun(int x){ for(int i=1;i<=m;i++) { if(!vis[i]&&ma[x][i]) { vis[i]=1; if(cy[i]==-1||fun(cy[i])) { cx[x]=i; cy[i]=x; return 1; } } } return 0;}int main(){ while(~scanf("%d%d",&n,&m)) { int si; memset(ma,0,sizeof(ma)); for(int i=1;i<=n;i++) { scanf("%d",&si); for(int j=1;j<=si;j++) { int x; scanf("%d",&x); ma[i][x]=1; } } int ans=0; memset(cx,-1,sizeof(cx)); memset(cy,-1,sizeof(cy)); for(int i=1;i<=n;i++) { if(cx[i]==-1) { memset(vis,0,sizeof(vis)); if(fun(i)) { ans++; } } } printf("%d\n",ans); } return 0;}
0 0
- poj2239 poj1274【二分匹配】
- POJ2239简单二分匹配
- POJ2239二分匹配
- poj1274 最大二分匹配
- 二分图片匹配--poj1274
- POJ1274-二分匹配
- poj1274二分匹配入门
- POJ1274 二分匹配
- POJ2239 二分图最大匹配
- poj2239 Selecting Courses --- 二分图最大匹配
- POJ2239 Selecting Courses【二分图最大匹配】
- poj1274 匈牙利算法 二分图最大匹配
- POJ1274 — 二分图匹配模板题
- poj1274 The Perfect Stall(二分图匹配)
- poj1274 The Perfect Stall【二分图匹配】
- poj2239 Selecting Courses(最大二分图匹配 (匈牙利算法) 实现 )
- poj2239——Selecting Courses(二分图匹配)
- POJ2239 Selecting Courses(二分图匹配,匈牙利算法)
- 斐波那契递归算法
- AlertViewController的使用
- 高空作业的三宝
- 确保打在rpm包中的.so文件具有可执行权限
- war包和jar包区别
- poj2239 poj1274【二分匹配】
- 蓝桥杯练习题 PREV-11 横向打印二叉树(排序二叉树)
- git 相关的命令
- 学习算法之路
- 层标记--div
- MFC 相关问题集中
- 从尾到头打印单链表
- C++ 实现反射机制
- 久违的月赛之一and二