poj1486 (二分图匹配)
来源:互联网 发布:淘宝客服管理方案 编辑:程序博客网 时间:2024/05/25 18:11
#include<stdio.h>#define N 200int x1[N],x2[N],y1[N],y2[N];int map[N][N];int match[N];int vis[N];int n,con[N];int dfs(int x){int i;for(i=1;i<=n;i++){if(map[x][i]&&!vis[i]){vis[i]=1;if(match[i]==-1||dfs(match[i])){match[i]=x;return 1;}}}return 0;}int solve(){int ans=0,i;memset(match,-1,sizeof(match));for(i=1;i<=n;i++){memset(vis,0,sizeof(vis));if(dfs(i))ans++;}return ans;}int main(void){int i,j,a,b,sym=1,flag;while(~scanf("%d",&n)&&n){ memset(map,0,sizeof(map));flag=0; for(i=1;i<=n;i++) scanf("%d%d%d%d",&x1[i],&x2[i],&y1[i],&y2[i]); for(i=1;i<=n;i++) { scanf("%d%d",&a,&b); for(j=1;j<=n;j++) { if(a>=x1[j]&&a<=x2[j]&&b>=y1[j]&&b<=y2[j]) map[i][j]=1; } } solve(); for(i=1;i<=n;i++) con[i]=match[i]; printf("Heap %d\n",sym); sym++; for(i=1;i<=n;i++) { map[con[i]][i]=0; if(solve()==n) continue; else { printf("(%c,%d) ",'A'+i-1,con[i]); flag=1; } map[con[i]][i]=1; } if(!flag) printf("none\n\n"); else printf("\n\n");}}
0 0
- poj1486(二分图匹配)
- poj1486 (二分图匹配)
- poj1486(二分图删边匹配)
- POJ1486 Sorting Slides 二分图最大匹配 必要匹配
- POJ1486 Sorting Slides【二分匹配】
- poj1486 sorting slides (二分图最大匹配的唯一性)
- poj1486 Sorting Slides 二分图匹配的必须边
- POJ1486 Sorting Slides (二分图求最大匹配)
- poj1486 二分匹配的唯一边
- 二分图必须边--poj1486
- POJ1486 Sorting Slides 二分图
- Sorting Slides(poj1486,绝对匹配边)
- HDU2063--过山车(二分匹配,二分图)
- poj2356(二分图匹配)
- 二分图(行列匹配)
- 二分图(最大匹配)
- hdoj2119_Matrix(二分图匹配)
- BZOJ1191(二分图匹配)
- MyBatis动态排序问题
- js页面处理时间-页面如何显示时间
- 文章标题
- 链表倒数第n个节点
- ASP.NET MVC 第一次访问每一个控制器特别慢.
- poj1486 (二分图匹配)
- C#实现字符的全角,半角转换
- QSPI nor flash相关驱动代码
- 感知机 Python代码
- Android 二维码扫描大小,扫描画面方向,设置前置后置摄像头
- 蓝桥历年蚂蚁感冒
- C# DataRow 学习总结
- craze face
- 主机序和网络序