关于关键路径

关键路径理解不是很透彻,就先不;理解了,从代码入手,总结一下代码思路,不管理不理解,代码写出来再说(弱者口胡)。

准备

late数组
early数组
vector< int > s 邻接表
stack< int > sta 栈存逆序拓扑排序

思路

用邻接表求拓扑排序,然后栈存逆拓扑排序,先通过正序拓扑排序更新late[]数组,它保存的是最短时间,更新规则

late[next]=max(late[next],late[now]+power{now,next});

接下来把early[]数组全部用late数组最后一个最大元素初始化,用sta的逆拓扑排序跟新early数组,更新规则
early[now]=min(early[now],early[next]-power{now,next});

最后输出关键活动只需 late[next]-early[next]-power{next,now}==0即可判断为关键活动,

当图中存在环即不可获得关键路径!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值