刚学OI,真心求助
查看原帖
刚学OI,真心求助
365532
Mr_ll楼主2022/8/13 16:59

寄,样例都不过

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=4e2+10;

int t, n, b, cnt, d[N][N], ans, vis[N], p[N];
int c[N][N];

bool dfs(int x) {
	for(int i = 1; i <= n; i ++) {
		if(c[x][i] && !vis[i]) {
			vis[i] = 1;
			if(! p[i] || dfs(p[i])) {
				p[i] = x;
				return 1;
			}
		}
	}
	return 0;
} 

void clea() {
	ans=0;
	memset(p, 0, sizeof(0));
}

int main() {
	
	scanf("%d", &t);
	while(t --) {
		clea();
		scanf("%d", &n);
		for(int i = 1; i <= n; i ++) 
			for(int j = 1; j <= n; j ++) scanf("%d", &c[i][j]); 
		for(int i = 1; i <= n; i ++) {
			memset(vis, 0, sizeof(vis));
			if(dfs(i)) ans ++;
		} 
		if(ans == n) puts("Yes");
		else puts("No");
	}
	
	return 0;
} 
2022/8/13 16:59
加载中...