这题一看就是缩点,但是缩完点怎么办呢?首先我们把所有的包含酒吧的缩点找出来,打上标记,然后建立一张新图, 每个缩点上的点权就是他所包含的所有点的点权和.但是建图的时候要注意,每一对缩点之间可能有多条边,所以我们可以先把重边去除一下,在建立新图,具体操作如下: ;i<=n;i++) { ) continue; for(int j=last[i];j;j=g[j].next) { int v=g[j].to; ) { e[++cnt].a=g[i].co; e[cnt].b=g[v].co; } }…