POJ 2762 Going from u to v or v to u?

题目没读懂...看了别人的结题报告才知道是要判断是否为弱连通图

 

u与v之间,只要u->v和v->u之间至少存在一条边就可以了

 

对于有向图,强连通分量中的点必然满足,所以先缩点,再拓扑排序求最长链,最长链的顶点数如果等于缩点后的顶点数,则为弱连通图

 

简单证明:首先,如果最长链上的顶点数等于DAG图的顶点数,则所有顶点在一棵树上,从根节点可以到达任意节点,任意顶点对直接至少存在一条边

 

如果最长链上的顶点数小于DAG图的顶点数,假设i不在最长链上,则最长链上存在点对x,y,x和y之间不存在边相连:

1.如果最长链与i所在的链不相交,显然的

2.如果最长链与i所在的链相交,有几种情况,自己画画就知道,认为点i之前的点为i的前驱点,点i之后的点为i的后继点,设j为相交的点,则两条链中,必然存在一种情形:j的某些前驱节点和后继节点相互不可达

 

如果本身就不是弱连通图的话,必定存在i,j,之间没有边,那么最长链的顶点数肯定小于缩点后的顶点数

 

代码:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值