基环树套路
1:先找环
2:在环上处理问题
两点之间的简单路径
- 如果在环上,cnt=2
- 如果不在环上,cnt=1
因此,反着思考,只需要考虑两点之间不在环上的点。
那么子问题就成了计算每个环上的点子树的个数。
判环
有向图:
只有正边权
(拓扑)
既有正权边又有负权边 spfa判断
无向图:
直接遍历一遍,如果遇到返祖边则判断一下当前记录的dis[u]+e[i].dis是否为负(正)
如果是,则一定有负(正)环,否则当前没有负环,回溯
1:先找环
2:在环上处理问题
两点之间的简单路径
因此,反着思考,只需要考虑两点之间不在环上的点。
那么子问题就成了计算每个环上的点子树的个数。
有向图:
只有正边权
(拓扑)
既有正权边又有负权边 spfa判断
无向图:
直接遍历一遍,如果遇到返祖边则判断一下当前记录的dis[u]+e[i].dis是否为负(正)
如果是,则一定有负(正)环,否则当前没有负环,回溯