zoukankan      html  css  js  c++  java
  • HDU2819

    #include<iostream> 
    using namespace std; 
     
    const int MAX=105
    int n,flag; 
    int visited[MAX],match[MAX],mat[MAX][MAX]; 
     
    void init() 

        for(int i=1;i<MAX;i++) 
            for(int j=1;j<MAX;j++) 
            { 
                mat[i][j]=0
            } 
     

     
    int path(int u) 

        int i,v; 
        for(v=1;v<=n;v++) 
        { 
            if(!visited[v]&&mat[u][v]) 
            { 
                visited[v]=1
                if(match[v]==-1||path(match[v])) 
                { 
                    match[v]=u; 
                    return 1
                } 
            } 
        } 
        return 0

     
    void max_match() 

        int i,ans=0
        memset(match,-1,sizeof(match)); 
        for(i=1;i<=n;i++) 
        { 
            memset(visited,0,sizeof(visited)); 
            if(!path(i)) 
            { 
                flag=1
                break
            } 
        } 
        return ; 

     
    int main(void

        int count,i,j,t,a[MAX],b[MAX],c,m,k; 
        while(scanf("%d",&n)==1
        { 
            flag=0
            memset(a,0,sizeof(a)); 
            memset(b,0,sizeof(b)); 
            init(); 
            for(i=1;i<=n;i++) 
                for(j=1;j<=n;j++) 
                    scanf("%d",&mat[i][j]); 
            max_match(); 
     
            c=0
            for(j=1;j<=n;j++) 
            { 
                m=j; 
                for(k=j;k<=n;k++) 
                    if(match[k]<match[m]) 
                        m=k; 
                if(m!=j) 
                { 
                    a[c]=m; 
                    b[c]=j; 
                    c++; 
                    t=match[m]; 
                    match[m]=match[j]; 
                    match[j]=t; 
                } 
            } 
            if(flag) 
                printf("-1\n"); 
            else 
            {     
                printf("%d\n",c); 
                for(i=0;i<c;i++) 
                    printf("C %d %d\n",a[i],b[i]); 
            } 
        } 

  • 相关阅读:
    HTTP的传输编码(Transfer-Encoding:chunked)
    单向链表寻找入环点算法的证明
    Java容器解析系列(17) LruCache详解
    Java容器解析系列(16) android内存优化之SparseArray
    Java容器解析系列(15) HashTable Dictionary & Properties
    Java容器解析系列(14) IdentityHashMap详解
    Swift开发之iOS11下UIToolBar非正常显示问题
    Python爬虫之Scrapy框架爬取XXXFM音频文件
    ARKit文档翻译之ARTrackable协议
    ARKit文档翻译之ARAnchor类
  • 原文地址:https://www.cnblogs.com/cchun/p/2520144.html
Copyright © 2011-2022 走看看