传送门:点击打开链接
题意:告诉你一个带权边无向图,边的权值只有0和1,告诉你起点和终点,问是否能使得从起点出发到终点时,路径边权和不等于0,每边最多只允许通过一次。
思路:因为"边不能走重复的",往往不能走重复边都可以和强连通分量结合起来。
这题我们首先求无向图所有的强连通分量并缩点,对于每一个强连通分量,如果里面有一条边的权值为1,那么最后缩成的点我们也给一个权值1。
缩点全部完成后,就会形成一颗树,树上点带权值,边也带权值。
那么我只要看st缩点后的节点u,和ed缩点后的节点v,在树中的路径中,是否有边权等于1,或者是点权等于1,只要出现了,那么题目都是输出YES
至于边权等于1就输出YES很好理解,不多说太多,主要理解下点权为什么等于1,也是输出YES
某一条边走过以后,就不能走第二遍了,相当于把这条边删掉。
根据强连通分量的性质,删了这条边后,两个点还是连通的。
所以就有了一条性质,在同一个强连通分量中,假如有两个节点u和v,和一条有效边s,我一定能从u,通过一条路径走到v,并且经过s
这就是缩点后还能搞的原理了。
变成树后,直接一个DFS从起点搜一下到终点,就ok了
#include