HDU1845Jimmy’s Assignment(无向图,最大匹配)
来源:互联网 发布:网络发短信不显示号码 编辑:程序博客网 时间:2024/06/15 10:35
题意:就是求最大匹配
#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include<stack>#include<queue>#include<vector>#include<limits>#include<ctime>#include<cassert>#include<cstdlib>#define lson (rt<<1),L,M#define rson (rt<<1|1),M+1,R#define M ((L+R)>>1)#define cl(a,b) memset(a,b,sizeof(a));#define LL long long#define P pair<int,int>#define X first#define Y second#define pb push_back#define fread(a) freopen(a,"r",stdin);#define fwrite(a) freopen(a,"w",stdout);using namespace std;const int maxn=5005;const int inf=999999;vector<int> G[maxn];int matching[maxn];bool vis[maxn];int num;bool dfs(int u){ int N=G[u].size(); for(int i=0;i<N;i++){ int v=G[u][i]; if(vis[v])continue; vis[v]=true; if(matching[v]==-1||dfs(matching[v])){ matching[v]=u; return true; } } return false;}int hungar(){ int ans=0; cl(matching,-1); for(int i=0;i<num;i++){ cl(vis,false); if(dfs(i))ans++; } return ans/2;//无向边,算了全部,除2}int main(){ int T; scanf("%d",&T); while(T--){ int n; scanf("%d",&n); for(int i=0;i<=n;i++)G[i].clear(); int m=n*3/2; while(m--){ int x,y; scanf("%d%d",&x,&y); x--;y--; G[x].pb(y);//这里是无向边 G[y].pb(x); } num=n; int ans=hungar(); printf("%d\n",ans); } return 0;}
0 0
- HDU1845Jimmy’s Assignment(无向图,最大匹配)
- hdu1845Jimmy’s Assignment
- hdu1845Jimmy’s Assignment
- 无向图最大匹配
- HDU1845 Jimmy’s Assignment(最大匹配)卡时间
- hdu 1845 Jimmy’s Assignment(最大二分匹配)
- 【转】带花树(一般无向图的最大匹配)
- 【转】带花树(一般无向图的最大匹配)
- HDOJ 1845 Jimmy’s Assignment (求最大匹配数 匈牙利算法)
- hdu1845 Jimmy’s Assignment (最大匹配Hopcroft-Karp算法)
- hdu_1845 Jimmy’s Assignment 二分图匹配
- HDU1845 Jimmy’s Assignment 984ms 飘过啊 汗死 二分匹配最大匹配数
- HDU 2853 Assignment(KM最大匹配好题)
- 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 (二分匹配)
- [leetcode-142]Linked List Cycle II(c)
- Android (小纸条便签问题记录)使用layout方法导致被父View遮挡问题
- GDOI2016模拟8.18总结
- unity3d 关于游戏暂停
- C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
- HDU1845Jimmy’s Assignment(无向图,最大匹配)
- C# WPF 动态添加窗体
- 数据挖掘之关联分析四(连续属性处理)
- python 使用pymsql连接数据库
- 检查服务器的pid文件,如果文件不存在或pid对应的进程已死重启服务器
- 【LeetCode】2_Add Two Numbers
- Java深度历险(二)Java类的加载、链接和初始化
- UITableView
- 在华睿模块内实现UDP收发数据