标签:
http://acm.hdu.edu.cn/showproblem.php?pid=1151
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4029 Accepted Submission(s): 2675
#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> #include<algorithm> #define N 310 #define INF 0x3f3f3f3f using namespace std; int G[N][N], vis[N], used[N]; int n; bool Find(int u) { int i; for(i = 1 ; i <= n ; i++) { if(!vis[i] && G[u][i]) { vis[i] = 1; if(!used[i] || Find(used[i])) { used[i] = u; return true; } } } return false; } int main() { int m, i, a, b, t, ans; scanf("%d", &t); while(t--) { ans = 0; memset(G, 0, sizeof(G)); scanf("%d%d", &n, &m); while(m--) { scanf("%d%d", &a, &b); G[a][b] = 1; } memset(used, 0, sizeof(used)); for(i = 1 ; i <= n ; i++) { memset(vis, 0, sizeof(vis)); if(Find(i)) ans++; } printf("%d\n", n - ans); } return 0; }
标签:
原文地址:http://www.cnblogs.com/qq2424260747/p/4718578.html