队内训练04p4题解

理解题意: 在符合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;
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_43832061/article/details/84963232
今日推荐