题意:
与 http://blog.csdn.net/houserabbit/article/details/38958891 类似 只不是将原本的无向图变为混合图
思路:
在上一篇我也写过了 http://blog.csdn.net/houserabbit/article/details/38958891 首先是找桥 那么就需要先把混合图变成无向图 因为题目说答案存在 因此桥必然是混合图里的无向边
然后就是块内的工作了 也是分两种边讨论 只不过判定边是否留下的时候要看一下它是不是原图的无向边 因为有向边是不能动的 最后稍微改一下输出 基本与上一篇一致
因此我们可以总结出一种思路 对于基于删边的构造强连通图的方法——找桥+块内dfs分2种边讨论 以前也曾经做过基于加边的构造强连通图 大致方法就是——强连通缩点+入度出度讨论
代码:
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
#include<set>
#include<vector&