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]); 
            } 
        } 

  • 相关阅读:
    String和StringBuilder和StringBuffer
    多态
    组件
    反向代理
    基础知识
    reflection
    v-model 与 v-bind:model
    tomcat端口占用问题
    socket
    简要概括内存机制
  • 原文地址:https://www.cnblogs.com/cchun/p/2520144.html
Copyright © 2011-2022 走看看