比赛 4043级2023省选模拟赛3 评测结果 AAAAAAAAAA
题目名称 矩阵游戏 最终得分 100
用户昵称 HeSn 运行时间 0.274 s
代码语言 C++ 内存使用 2.91 MiB
提交时间 2023-03-24 20:34:23
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n, vis[1010], a[1010], ans;
vector<int> cd[1010];
int dfs(int x) {
	for(int i = 0; i < cd[x].size(); i ++) {
		int u = cd[x][i];
		if(!vis[u]) {
			vis[u] = 1;
			if(!a[u] || dfs(a[u])) {
				a[u] = x;
				return 1;
			}
		}
	}
	return 0;
}
int main() {
	freopen("qmatrix.in", "r", stdin);
	freopen("qmatrix.out", "w", stdout);
	int t;
	cin >> t;
	for(int tt = 1; tt <= t; tt ++) {
		cin >> n;
		for(int i = 1; i <= n; i ++) {
			cd[i].clear();
		}
		memset(a, 0, sizeof(a));
		ans = 0;
		for(int i = 1; i <= n; i ++) {
			for(int j = 1; j <= n; j ++) {
				int x;
				cin >> x;
				if(x) {
					cd[i].push_back(j + n);
				}
			}
		}
		for(int i = 1; i <= n; i ++) {
			memset(vis, 0, sizeof(vis));
			if(dfs(i)) {
				ans ++;
			}
		}
		if(ans == n) {
			cout << "Yes" << endl;
		}
		else {
			cout << "No" << endl;
		}
	}
	return 0;
}