HDU1845(最大匹配)
来源:互联网 发布:apache tiles 教程 编辑:程序博客网 时间:2024/05/22 10:35
两个点集,个数都为n,求出最大匹配,然后除以2
#include <stdio.h>#include <string.h>#include <string>#include <iostream>#include <algorithm>#include <vector>#define maxn 5005#define LL long longusing namespace std;int n;vector<int> G[maxn];int lx[maxn],ly[maxn];bool vis[maxn];bool DFS(int u){for(int i=0;i<G[u].size();i++){int v=G[u][i];if(!vis[v]){vis[v]=1;if(ly[v]==0 || DFS(ly[v])){ly[v]=u;lx[u]=v;return true;}}}return false;}int match(){int ans=0;for(int i=1;i<=n;i++){if(lx[i]==0){for(int j=0;j<=n;j++)vis[j]=0;if(DFS(i))ans++;}}return ans;}int main(){int t;scanf("%d",&t);while(t--){scanf("%d",&n);for(int i=1;i<=n;i++)G[i].clear();for(int i=0;i<=n;i++)lx[i]=0,ly[i]=0;int m=n*3/2;while(m--){int u,v;scanf("%d%d",&u,&v);G[u].push_back(v);G[v].push_back(u);}printf("%d\n",match()/2);}return 0;}
0 0
- HDU1845(最大匹配)
- hdu1845 Jimmy’s Assignment (最大匹配Hopcroft-Karp算法)
- HDU1845 Jimmy’s Assignment(最大匹配)卡时间
- 【HDU1845】【完备匹配】
- HDU1845 Jimmy’s Assignment 984ms 飘过啊 汗死 二分匹配最大匹配数
- hdu1845
- hdu1845
- hdu1845 Jimmy’s Assignment --- 完备匹配
- 最大匹配
- 完全匹配-最大匹配
- HDU1845 Jimmy’s Assignment
- 【HDU4619】【二分匹配】【最大匹配】
- 正向最大匹配和反向最大匹配
- 最大子串匹配
- 最大正向匹配算法
- 最大字串匹配问题
- 二部图,最大匹配
- [最大匹配]Pku3041--Asteroids
- DataGridView 实现行[Row]的上下移动
- Ubuntu12.10 无法启动
- 平衡二叉树(AVL树)
- 如何修改framework下面的odex文件
- 直接插入排序
- HDU1845(最大匹配)
- 二叉树的各种遍历(递归,非递归,层次)
- 如何理解c和c++的复杂类型声明
- 100天行动之------雨天思考
- HDU 2717 Catch That Cow (搜索 - BFS)
- 循环队列实现c++
- 面对现实,做好自己(一)
- 古龙小说精彩段落记录
- split