每个边都有边权,每个点都有点权,题意即找到一个环,使得经过的点权和与边权和的比值最大,对于一个环,点数和边数一样,我们将所有的点权放在到达该点的边上,记点权为 $f _ i$ ,边权为 $w _ i$ ,经过了 $k$ 条边,则要使得 $\frac {\displaystyle \sum _ {i = 1} ^ k f _ i} {\displaystyle \sum _ {i = 1} ^ k w _ i}$ 最大,考虑分数规划。
设当前二分平均值为 $x$ ,则 $x$ 合法的条件为: $$ \begin{aligned} & \frac {\sum _ {i = 1} ^ k f _ i} {\sum _ {i = 1} ^ k w _ i} \ge x\\ \Longrightarrow & \sum _ {i = 1} ^ k f _ i \ge x \sum _ {i = 1} ^ k w _ i\\ \Longrightarrow & \sum _ {i = 1} ^ k f _ i - x w _ i \ge 0\\ \end{aligned} $$ 即需要找到一个正环,所有点都可以作为起点,所以都放进队列里做 spfa 最长路即可。