设为首页 加入收藏

TOP

poj 1274最大匹配匈牙利算法
2015-11-21 00:56:36 来源: 作者: 【 】 浏览:1
Tags:poj 1274 最大 匹配 匈牙利 算法
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
         
           #include 
          
            #include
            #include 
            
              using namespace std; #define INF 0x2fffffff #define LL long long #define MAX(a,b) ((a)>(b))?(a):(b) #define MIN(a,b) ((a)<(b))?(a):(b) int n,m; int s = 0; int e; int cx[205]; int cy[205]; vector
             
               vec[205]; int vis[205]; int path(int u){ int si = vec[u].size(); for(int i = 0;i < si;i++){ int v = vec[u][i]; if(!vis[v]){ vis[v] = 1; if((cy[v] == -1|| path(cy[v]))){ cx[u] = v; cy[v] = u; return 1; } } } return 0; } int max_match(){ memset(cx,-1,sizeof(cx)); memset(cy,-1,sizeof(cy)); memset(vis,0,sizeof(vis)); int ans = 0; for(int i = 1;i <= n;i++){ if(cx[i] == -1){ memset(vis,0,sizeof(vis)); ans += path(i); } } return ans; } int main(){ while(cin >> n >> m){ for(int i = 0;i < n;i++){ vec[i].clear(); } for(int i = 1;i <= n;i++){ int g; scanf(%d,&g); for(int j = 0;j < g;j++){ int x; scanf(%d,&x); vec[i].push_back(x); } } cout << max_match() << endl; } return 0; } 
             
            
          
         
        
       
      
     
    
   

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++ 头文件相互包含的问题 下一篇HDU 3853 向下向右找出口问题-期..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: