hdu1498 二分图匹配(多次最小点覆盖)
来源:互联网 发布:js 判断span 是否隐藏 编辑:程序博客网 时间:2024/05/16 07:32
#include <iostream>#include <cstdio>#include <string.h>using namespace std;const int MAXN = 100 + 10;int n, k;int c[MAXN][MAXN];int ans[MAXN];int match[MAXN];bool vis[MAXN];int cur;bool dfs(int u){ for (int i = 1; i <= n; i++) { if (!vis[i] && c[u][i] == cur) { vis[i] = true; if (match[i] == -1 || dfs(match[i])) { match[i] = u; return true; } } } return false;}void solve(){ int tot = 0; for (int i = 1; i <= 50; i++) { memset(match, -1, sizeof(match)); int num = 0; cur = i; for (int j = 1; j <= n; j++) { memset(vis, false, sizeof(vis)); if (dfs(j)) { num++; } } if (num > k) { ans[tot++] = i; } } if (tot == 0) { cout << -1; } for (int i = 0; i < tot; i++) { cout << ans[i]; if (i != tot - 1) { cout << ' '; } } cout << endl;}void input(){ int x; while (cin >> n >> k) { if (!n && !k) { break; } memset(c, 0, sizeof(c)); for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { scanf("%d", &x); c[i][j] = x; } } solve(); }}int main(){ input(); return 0;}
0 0
- hdu1498 二分图匹配(多次最小点覆盖)
- hdu1498最小点覆盖
- hdu1498二分图最小顶点覆盖
- 二分图匹配 + 最小点覆盖
- 二分图匹配 --- 最小点覆盖
- 二分图-最大匹配,最小路径覆盖,最小点覆盖
- hdu1498匈牙利算法/最小点覆盖
- hdu1498题解-再次白话最小点覆盖
- hdu1498——最小点覆盖
- HDU1498-二分图行列匹配
- 二分图最大匹配,最小点覆盖,最小路径覆盖,二分图最大独立集
- POJ 3692 最小点覆盖 最大二分图匹配
- hdu 1150 二分图 最小点覆盖=最大匹配
- HDU 1150 二分图匹配 最小点覆盖
- HDU 1150 二分图匹配 最小点覆盖
- poj 3041 二分图最大匹配(最小点覆盖问题)
- poj1463 二分图匹配的最小点覆盖
- hdu1150 二分图匹配的最小点覆盖
- NGUI 按钮音效问题
- 红黑树C++
- SVN中trunk,branches,tags用法详解
- 面试10大算法汇总+常见题目解答
- Oracle学习.数据文件、控制文件、重做日志文件的理解
- hdu1498 二分图匹配(多次最小点覆盖)
- iOS 内存管理
- windows8下安装SSDB1.6.6
- VC通过WinExec和ShellExecute打开指定程序或者文件的方法
- 为Eclipse安装Tomcat插件,不出现Tomcat图标
- Win7下开启wifi热点少见的常用注意事项
- 为DataGridView控件动态添加新行并赋值
- JavaScript社区开发者调查:服务端JS盛行,Backbone.js使用最多
- .Net Framework Initialization Error – Unable to find a version of the runtime to run this applicatio