BZOJ 1059(二分图匹配)
2024-09-02 17:59:30
要点
- 发现每行每列都得有1
- 发现无论怎么换,在同一行的永远在同一行,同一列的永远在同一列
- 于是换行貌似没什么用啊,换列就够了。换列无法做到则无答案
- 于是变成了行与列进行二分匹配
#include <cstdio>
#include <cstring>
int T, n, a[205][205];
int match[205], vis[205];
bool dfs(int x) {
for (int i = 1; i <= n; i++)
if (!vis[i] && a[x][i]) {
vis[i] = 1;
if (!match[i] || dfs(match[i])) {
match[i] = x; return 1;
}
}
return 0;
}
bool Solve() {
memset(match, 0, sizeof match);
for (int i = 1; i <= n; i++) {
memset(vis, 0, sizeof vis);
if (!dfs(i)) return 0;
}
return 1;
}
int main() {
for (scanf("%d", &T); T; T--) {
scanf("%d", &n);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
scanf("%d", &a[i][j]);
puts(Solve() ? "Yes" : "No");
}
}
最新文章
- Spring 学习笔记 8. 尚硅谷_佟刚_Spring_使用外部属性文件
- 关于c++操作符的优先级
- Makefile 中:= ?= += =的区别
- Integer
- swift函数的用法,及其嵌套实例
- 《ASP.NET1200例》各种类型文件汇总
- String.Join 和 Distinct 方法 去除字符串中重复字符
- Android之View.onMeasure方法
- poj 2762 Going from u to v or from v to u?
- 应用按home键无最近应用
- A Bit Of Knowledge
- 桌面应用框架 OneRing
- CSS设置图片居中的方法
- Docker学习总结(一)
- c# post basic 接口
- The Network Adapter could not establish the connection
- 好用的Quartz管理器类
- hdu4497-GCD and LCM-(欧拉筛+唯一分解定理+组合数)
- 原生javascript封装的函数
- C# 执行CMD命令的方法