匈牙利算法 bool find(int x) { for (int i = 1; i < m; i ++ ) if (!st[i]) { st[i] = true; int t = match[i]; if (t == 0 || find(t)) { match[i] = x; return true; } } return false; } int main() { int res = 0; for (int i = 1; i = n; i ++ ) { memset(st, 0, sizeof st); if (find(i)) res ++ ; } return 0; }