hdu 1845 Jimmy’s Assignment(最大二分匹配)
来源:互联网 发布:气动打标机软件下载 编辑:程序博客网 时间:2024/05/20 16:11
Jimmy’s Assignment
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1845
解题思路:
最大二分匹配,模板题,其实题目说 This graph is undirected, has N vertices and each vertex has degree 3. Furthermore, the graph is 2-edge-connected。就能得到答案为n/2。但是为了熟悉模板,还是把模板敲了一遍。。。
注意:用G++交,看人品,有时能过,C++能过。。。
AC代码:
#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <vector>#include <map>using namespace std;const int MAX_V = 5005;int n;//顶点数vector<int> G[MAX_V];//图的邻接表表示int match[MAX_V];//所匹配的顶点bool used[MAX_V];//DFS中甬道的访问标记//通过DFS寻找增广路bool dfs(int u){ used[u] = true; for(int i = 0; i < G[u].size(); i++){ int v = G[u][i],w = match[v]; if(w < 0 || !used[w] && dfs(w)){ match[v] = u; return true; } } return false;}//求解二分图的最大匹配int bipartite_matching(){ int res = 0; memset(match,-1,sizeof(match)); for(int v = 1; v <= n; v++){ memset(used,0,sizeof(used)); if(dfs(v)) res++; } return res;}int main(){ int T; scanf("%d",&T); while(T--){ int m,u,v; scanf("%d",&n); for(int i = 1; i <= n; i++) G[i].clear(); m = 3*n/2; for(int i = 0; i < m; i++){ scanf("%d%d",&u,&v); G[u].push_back(v); G[v].push_back(u); } printf("%d\n",bipartite_matching()/2); } return 0;}
1 0
- hdu 1845 Jimmy’s Assignment(最大二分匹配)
- HDU - 1845 Jimmy’s Assignment (二分匹配)
- hdu 1845 Jimmy’s Assignment (二分匹配)
- HDU 1845 Jimmy’s Assignment(二分图匹配)
- HDU 1845 Jimmy’s Assignment(二分图匹配)
- HDU 1845 Jimmy’s Assignment【二分匹配,三正则图】
- hdu 1845 Jimmy’s Assignment (二分图)
- hdu 1845 Jimmy’s Assignment 二分匹配最小点集覆盖
- hdu_1845 Jimmy’s Assignment 二分图匹配
- Poj 3683 Jimmy’s Assignment【二分匹配】
- HDU1845 Jimmy’s Assignment(最大匹配)卡时间
- HDU1845 Jimmy’s Assignment 984ms 飘过啊 汗死 二分匹配最大匹配数
- HDOJ 1845 Jimmy’s Assignment (求最大匹配数 匈牙利算法)
- hdu1845 Jimmy’s Assignment (最大匹配Hopcroft-Karp算法)
- HDOJ 1845 - Jimmy’s Assignment 左右侧点代表的是相同点的二分图最大匹配/利用性质的算法
- hdu1845 Jimmy’s Assignment --- 完备匹配
- hdoj 1845 Jimmy’s Assignment 【HK】
- HDU1845 Jimmy’s Assignment
- Butter knife的使用介绍与源码分析
- 把握linux内核设计思想(十二):内存管理之slab分配器
- Spring MVC入门教程(一)
- 学习笔记 链表的创建和赋值
- 可持久化线段树HDU2665、bzoj3207
- hdu 1845 Jimmy’s Assignment(最大二分匹配)
- 图的最小生成树之普里姆Prim算法
- Talking to Elasticsearch
- UVA 11582 - Colossal Fibonacci Numbers!【大数幂取模】
- [bfs] poj 3669 Meteor Shower
- 小牌九如何记牌做记号
- 10.2-2 用单链表实现栈
- bfprt算法
- poj3465 贪心+优先队列