这道题是一个无向图,询问加入某条边后,问图内剩余的桥有多少。
这题的大概思路就是,先求割边并标记,然后缩点,形成一棵树,然后把这颗树上各个结点的父结点用dfs求出来,再然后就是LCA了,因为加入某条边后,树内会形成一个圈,这个圈上所有的边将不再是桥,可以发现跟LCA的关联。
求LCA用裸的方法就行,比较直观些,也好操作。
实际上,这道题也不一定要缩点,如果用缩点的思路来做的话,程序将十分麻烦。可以直接根据dfn值来进行LCA。因为,我们观察low[v] > dfn[u]这个条件,代表的意思就是v无法通过回边或者通过子女到达比u点更靠前的点,那么我们只需要标记v点即可表明割边。在进行LCA时,由于树的组成就是原图中的割边,所以在原图中,根据这个标记来判断是否将割边被转化为了普通边。
Network
|