理解题意: 在符合law的条件下尽可能删除多的边。
由于题目给的图是一定能满足law的,所以只需要删除重复的点(就是被多个警察局同时管辖的点)。
用BFS遍历每个点,如果重复访问,就删除,用两个数组来存储。
while(!q.empty()){
int x=q.front();
int sz=g[x].size();
q.pop();
for(int i=0;i<sz;i++){
if(vis[g[x][i].v]==0){
vis[g[x][i].v]=1;
vis2[g[x][i].id]=1;
q.push(g[x][i].v);
}
}
}
for(int i=1;i<n;i++){
if(vis2[i]==0){
result++;
c[result]=i;
}
}