hdu2063+hdu1083(最大匹配数)
传送门:hdu2063过山车
#include <cstdio> #include <cstring> #include <string> #include <cmath> #include <iostream> #include <algorithm> #include <queue> #include <cstdlib> #include <stack> #include <vector> #include <set> #include <map> #define LL long long #define mod 100000000 #define inf 0x3f3f3f3f #define eps 1e-6 #define N 510 #define FILL(a,b) (memset(a,b,sizeof(a))) #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define PII pair<int,int> using namespace std; int g[N][N],vis[N],linker[N]; int n,m; int dfs(int u) {for(int i=1;i<=m;i++)if(g[u][i]&&!vis[i]){vis[i]=1;if(linker[i]==-1||dfs(linker[i])){linker[i]=u;return 1;}}return 0; } int main() {int k;while(scanf("%d",&k),k){scanf("%d%d",&n,&m);FILL(g,0);FILL(linker,-1);while(k--){int u,v;scanf("%d%d",&u,&v);g[u][v]=1;}int ans=0;for(int i=1;i<=n;i++){FILL(vis,0);if(dfs(i))ans++;}printf("%d\n",ans);} }
View Code
传送门:hdu1083 courses
#include <cstdio> #include <cstring> #include <string> #include <cmath> #include <iostream> #include <algorithm> #include <queue> #include <cstdlib> #include <stack> #include <vector> #include <set> #include <map> #define LL long long #define mod 100000000 #define inf 0x3f3f3f3f #define eps 1e-6 #define N 310 #define FILL(a,b) (memset(a,b,sizeof(a))) #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define PII pair<int,int> using namespace std; int g[N][N],vis[N],match[N]; int n,m; int dfs(int u) {for(int i=1;i<=m;i++)if(g[u][i]&&!vis[i]){vis[i]=1;if(match[i]==-1||dfs(match[i])){match[i]=u;return 1;}}return 0; } int main() {int t,num,x;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);FILL(g,0);FILL(match,-1);for(int i=1;i<=n;i++){scanf("%d",&num);while(num--){scanf("%d",&x);g[i][x]=1;}}int sum=0;for(int i=1;i<=n;i++){FILL(vis,0);if(dfs(i))sum++;}if(sum==n)puts("YES");else puts("NO");} }
View Code
转载于:https://www.cnblogs.com/lienus/p/4285052.html
hdu2063+hdu1083(最大匹配数)相关推荐
- hdu 2063+hdu 1083(最大匹配数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 二分匹配水题,求最大匹配数(即求边数最多的匹配),匈牙利算法实现.. View Code 1 # ...
- UVALive 2523 Machine Schedule(二分图求最大匹配数)
题意:有两台机器,上面有多个工作区域,有多个任务,分别可以在两台机器的某一个区域上完成,两台机器一开始都在0区域上工作,每次更改区域,都会重新启动一次,让我们求出最小的重启次数. 思路:将两个区域连线 ...
- HDU 1068 Girls and Boys(最大独立集合 = 顶点数 - 最大匹配数)
HDU 1068 :题目链接 题意:一些男孩和女孩,给出一些人物关系,然后问能找到最多有多少个人都互不认识. 转换一下:就是大家都不认识的人,即最大独立集合 #include <iostream ...
- 二分图大讲堂——彻底搞定最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配
二分图匹配 二分图大讲堂--彻底搞定最大匹配数(最小覆盖数).最大独立数.最小路径覆盖.带权最优匹配(转) 文本内容框架: §1图论点.边集和二分图的相关概念和性质 §2二分图最大匹配求解 匈牙利算法 ...
- POJ-3281-Dining(求一对二最大匹配数/最大流)
转载于:https://www.cnblogs.com/GrowingJlx/p/6642681.html
- 过山车(二分图_求最大匹配数)
Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner ...
- 二分图的最大匹配(匈牙利算法)HDU1083
二分图: 二分图又称作二部图,是图论中的一种特殊模型. 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同 ...
- Hdu_2063 过山车 -最大匹配(邻接表版)
题目:就是最大匹配了 /************************************************ Author :DarkTong Created Time :2016/8/1 ...
- 最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)
在讲述这两个算法之前,首先有几个概念需要明白: 二分图: 二分图又称二部图,是图论中的一种特殊模型.设G=(V,E)是一个无向图,如果顶点V可以分割为两个互不相交的子集(A,B),并且图中的每条边( ...
最新文章
- 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 BasicMessageChannel 通信 )
- @Aspect注解无效
- React中Context API的应用
- JAVA——保持cookie登录状态的HttpClient封装工具类
- convirt2.5在虚拟机上安装笔记
- 用AI说再见!“辣眼睛”的买家秀
- web系统软件测试功能点,小程序、app、web测试的区别
- Eclipse报错:this compilation unit is not on the build path of a java project
- android webview recyclerview,文章详情页的实现——WebView和RecyclerView混合
- Shell学习之IF的使用
- day25-静态、组合、继承
- 【Java】按要求编程输出2018年日历
- Ribbon界面开发总结
- Vue 富文本编辑器 vue-quill-editor
- [django]梳理drf知识点
- 【手把手带你刷LeetCode】——02.出现1次和K次的数(位运算)
- 谷歌发布深度学习Efficient Net新架构,各方面表现全面碾压卷积神经网络
- 用C语言实现base64解密(包括二进制文件)
- 高并发实时直播弹幕研发实践
- Kubernets 污点与容忍