标签:二分 color pre pac 查找 ace cin names nbsp
#include <bits/stdc++.h> #define MAX 505 using namespace std; int book[MAX],match[MAX]; int n,m,sum,a,b; int e[MAX][MAX]; int dfs(int u) { for(int i=1;i<=n;i++) { if(!book[i]&&e[u][i]) { book[i]=1; if(match[i]==0||dfs(match[i]))//这个点未被匹配或者与他匹配的点可以有新的匹配 此时表示多了一个匹配 { match[i]=u; match[u]=i; return 1; } } } return 0; } int main() { cin>>n>>m; for(int i=0;i<m;i++) { cin>>a>>b; e[a][b]=e[b][a]=1; } for(int i=1;i<=n;i++) { memset(book,0,sizeof(book));//重新进行访问了 book归0 if(dfs(i))sum++; } cout<<sum; }
标签:二分 color pre pac 查找 ace cin names nbsp
原文地址:http://www.cnblogs.com/8023spz/p/7456717.html