#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
const int MAXN = 1005;
vector<int> adj[MAXN]; // 邻接表存储图
bool visited[MAXN]; // 标记节点是否访问过
// 深度优先搜索,跳过被占领的城市 forbidden
void dfs(int u, int forbidden) {
visited[u] = true;...