点和边之间关系的负环

写一下这道题目,题目是之前做过的, 但是现在再做一遍感觉有点陌生,说明之前做的时候没有认真思考和总结,现在做完这道题目感觉还挺重要的,还是写一下这道题吧。

自认为可以将这种的题目抽象成: 首先是一个环,其次是环内点和边都有权值,然后让我们求一些东西,比如点的权值和边的权值和之间的比值的最大值之类的,像这样的题目我们一般会发现答案是具有单调性的,我们进行二分,然后判断是否有满足这样的环即可。

写一下判断的方法是 ∑ p o i n t ∑ e d g s > = m i d \frac{\sum point}{\sum edgs} >= mid edgspoint>=mid

然后推出来 ∑ p o i n t > = ∑ e d g s ∗ m i d \sum point >= \sum edgs * mid point>=edgsmid

继续然后是 0 > = ∑ e d g s ∗ m i d − ∑ p o i n t 0 >= \sum edgs * mid - \sum point 0>=edgsmidpoint

这样我们就判断有没有这样的负环就可以了,那么我们的程序判断的条件就变成了 d i s t [ j ] > d i s t [ t ] ∗ k − p o i n t [ t ] dist[j] > dist[t] * k - point[t] dist[j]>dist[t]kpoint[t]

这样就可以做了。

贴两个例题吧
观光奶牛
单词环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值