hdu 2063 过山车【二分图】
来源:互联网 发布:惠普q1910更新软件 编辑:程序博客网 时间:2024/05/22 03:13
题目链接
思路:二分图匹配
匈牙利算法(个人理解最优匹配):每次查询都尽可能匹配,如果这个点的对象已经被匹配了,那就递归拆边,递归这个过程保证拆后的点都能匹配才能够回溯,否则不匹配,开始下一个点。
#include <cstdio>#include <cstring>#include <algorithm>#define max_n 510using namespace std;int mapp[max_n][max_n];int used[max_n], girl[max_n];int p1, p2, n, m, k;bool dfs(int x) { for(int i = 1; i<= m; i++) { if(mapp[x][i] && !used[i]) { used[i] = 1; if(!girl[i] || dfs(girl[i])) { girl[i] = x; return 1; } } } return 0;}int main() { while(scanf("%d", &k) && k) { memset(mapp, 0, sizeof(mapp)); memset(girl, 0, sizeof(girl)); //表示汉子对应的妹子编号 scanf("%d %d", &n, &m); for(int i = 0; i < k; i++) { scanf("%d %d", &p1, &p2); mapp[p1][p2] = 1; } int ans = 0; for(int i = 1; i <= n; i++) { memset(used, 0, sizeof(used)); if(dfs(i)) ans++; } printf("%d\n", ans); } return 0;}
阅读全文
0 0
- hdu 2063过山车-二分图
- HDU-2063-过山车 (二分图)
- 【hdu 2063 过山车 二分图】
- hdu 2063 过山车【二分图】
- hdu 2063 过山车(二分图匹配)
- hdu 2063 过山车(二分图匹配)
- HDU 2063 过山车 二分图题解
- HDU-#2063 过山车(二分图匹配)
- HDU 2063 过山车 【二分图+增广路】
- hdu 2063 过山车 (二分图匹配)
- HDU 2063 过山车【二分图最大匹配】
- hdu 2063过山车-二分图 匈牙利算法
- 【HDU 2063】【二分图最大匹配】过山车
- hdu 2063 过山车(二分图最大匹配)
- HDU - 2063 过山车(二分图匹配)
- HDU 2063 过山车(二分图)
- 【HDU】-2063-过山车(二分图)
- hdu 2063 过山车 -二分图匹配
- 2017 Multi-University Training Contest
- opencv中puttext()函数的使用
- 青蛙跳台阶/变态跳台阶问题
- pthread_create源码分析
- 20170822-BIN
- hdu 2063 过山车【二分图】
- bzoj 1138: [POI2009]Baj 最短回文路 bfs
- android TextView相关属性及文本处理
- 23中设计模式之策略模式
- 8-22 DAIRY
- Go 程序的性能优化及 pprof 的使用
- MySQL 数据库常用命令小结
- MemoryPool —— 简单高效的内存池 allocator 实现
- Idea使用总结