首页 > 代码库 > _bzoj1059 [ZJOI2007]矩阵游戏【二分图匹配】
_bzoj1059 [ZJOI2007]矩阵游戏【二分图匹配】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1059
保存匈牙利模板。
#include <cstdio> #include <cstring> const int maxn = 205; const char _outp[2][5] = {"No", "Yes"}; int T, n, left[maxn], ans; char g[maxn][maxn], cover[maxn]; bool dfs(int i) { for (int j = 1; j <= n; ++j) { if (!g[i][j] || cover[j]) { continue; } cover[j] = 1; if (!left[j] || dfs(left[j])) { left[j] = i; return true; } } return false; } int main(void) { //freopen("in.txt", "r", stdin); scanf("%d", &T); while (T--) { scanf("%d", &n); ans = 0; memset(left, 0, sizeof left); for (int i = 1; i <= n; ++i) { for (int j = 1; j <= n; ++j) { scanf("%d", (int*)(g[i] + j)); } } for (int i = 1; i <= n; ++i) { memset(cover, 0, sizeof cover); if (dfs(i)) { ++ans; } } puts(_outp[ans == n]); } return 0; }
_bzoj1059 [ZJOI2007]矩阵游戏【二分图匹配】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。