• bzoj1059: [ZJOI2007]矩阵游戏


    二分图匹配。

    $VMMT_Q(NK4B(%R5A525%PX

    补充,感觉之前说的不够详细,如果有完美匹配的话,每行都有一个对应的列,那么换来换去以后,对角线就全黑了。。。

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    const int maxn = 400 + 10;
    
    bool vis[maxn];
    int p[maxn],map[maxn][maxn];
    int n,T;
    
    bool find(int x) {
        if(vis[x]) return false;
        vis[x]=1;
        
        for(int i=1;i<=n;i++) 
            if(map[x][i]) {
                if(!p[i] || find(p[i])) {
                    p[i]=x;
                    return true;
            }
        }
        return false;
    }
    
    bool work() {
        memset(p,0,sizeof(p));
        for(int i=1;i<=n;i++) {
            memset(vis,0,sizeof(vis));
            if(!find(i)) 
                return false;
        }
        return true;    
    }
    
    int main() {
        scanf("%d",&T);
        while(T--) {
            scanf("%d",&n);
            memset(map,0,sizeof(map)); 
            for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++) 
                scanf("%d",&map[i][j]);
            if(work()) printf("Yes
    ");
            else printf("No
    ");
        }
        return 0;
    }
  • 相关阅读:
    [POI2009]SLOElephants
    java回顾之集合概述
    java回顾之初始化
    java回顾之包装类
    java回顾之Set
    action,category
    java回顾之继承 二
    java回顾之TreeSet
    java回顾之final
    java回顾之继承
  • 原文地址:https://www.cnblogs.com/invoid/p/5528232.html
Copyright © 2020-2023  润新知