连通分量

#pragma comment(linker, "/STACK:102400000,102400000") 手动加栈

强连通分量:有向图中两两可达的子图,即环

无向图:

割点:就是删掉这个点之后连通分量增加,

桥:删除这条边后连通分量增加。

边双连通分量:无向图中两两可达的子图,及环。

https://cn.vjudge.net/contest/287581#problem/B 题目链接

A题: 对于有向图,求存不存在一个点可以被其他所有点可达:

首先缩点成为一个有向无环图,对于每个强联通分量(在有向无环图中就是一个点)计算他们的出度,如果要满足要求,应该只有一个强联通分量的出度等于零,所以就是看是否只存在一个点的出度为零。

 

B题:对于有向图,求至少需要在几个点放病毒可以是其他点都感染病毒,然后计算至少要加几条边才能使得随便把病毒给那个点都可以使所有点感染病毒:

首先锁典成为一个有向无环图,计算出度为零的点就是第一问,第二问是求入度为零的点与出度为零的点的个数的最大值。

 

求树的直径,即树上最长的一条链,记录深度数组,先随便找一个点,找到离他最远的一个点,然后把深度数组归零,从这个点在找一个离他最远的一个点,那个点的深度即为树的直径。

转载于:https://www.cnblogs.com/downrainsun/p/10716940.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值