首页 > 其他 > 详细

[ZJOI2007] 矩阵游戏 - 二分图匹配

时间:2020-02-05 11:23:18      阅读:67      评论:0      收藏:0      [点我收藏+]

题意:问一个\(0-1\)方阵是不是非奇异的

其实我真的很想求行列式

#include <bits/stdc++.h>
using namespace std;
#define N 505
int n,m,p,cx[N],cy[N],vis[N];
std::vector<int> e[N];
int dfs(int u,int Time) {
    for(int i=0;i<(int)e[u].size();++i) {
        int v=e[u][i];
        if(vis[v]^Time) {
            vis[v]=Time;
            if(!cy[v]||dfs(cy[v],Time)) {
                cx[u]=v; cy[v]=u;
                return 1;
            }
        }
    }
    return 0;
}
void solve() {
    n=m=p=0;
    memset(cx,0,sizeof cx);
    memset(cy,0,sizeof cy);
    memset(vis,0,sizeof vis);
    cin>>n;
    m=n;
    for(int i=1;i<=n;i++) e[i].clear();
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=n;j++) {
            int t;
            cin>>t;
            if(t) e[i].push_back(j);
        }
    }
    int ans=0;
    for(int i=1;i<=n;++i) ans+=dfs(i,i);
    if(ans==n) cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
}
int main() {
    int t;
    cin>>t;
    while(t--) solve();
}

[ZJOI2007] 矩阵游戏 - 二分图匹配

原文:https://www.cnblogs.com/mollnn/p/12262519.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!