如题,这份代码能够通过此题:
bool dfs(int x, int cnt) {
for (int i = 0; i < a[x].size(); i++) {
int y = a[x][i];
if (tim[y] != cnt) {
tim[y] = cnt;
if (!match[y] || dfs(match[y], cnt)) {
match[y] = cnt;
return 1;
}
}
}
return 0;
}
很明显 match[y] = cnt 应写成 match[y] = x。