您的位置:首页 > 其它

bzoj1059 [ZJOI2007]矩阵游戏

2017-08-20 19:37 302 查看
二分图匹配。

发现:无论怎么交换,同一行的还是同一行,同一列的还是同一列的。

所以直接建图,跑匈牙利就好了

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#define N 205
using namespace std;
int pp
,n,T,g

,cnt;
bool bo
;
bool find(int x){
for(int i=1;i<=n;i++){
if(!bo[i]&&g[x][i]){
bo[i]=1;
if(!pp[i]||find(pp[i])){
pp[i]=x;
return 1;
}
}
}
return 0;
}
int main(){
scanf("%d",&T);
while(T--){
cnt=0;
memset(pp,0,sizeof pp);
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&g[i][j]);
for(int i=1;i<=n;i++){
memset(bo,0,sizeof bo);
if(find(i))cnt++;
}
if(cnt==n)printf("Yes\n");
else printf("No\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: