分数规划小结

https://www.zybuluo.com/ysner/note/1262173

定义

给定数列\(\{a\},\{b\}\),求解一组数列\(\{x\}\)\(x_i=\{0,1\}\))
使得$$\frac{\sum_{i=1}na_i*x_i}{\sum_{i=1}nb_i*x_i}$$
最大化。
(只要有未知量相除,都是这玩意儿)

方法

主要是二分答案。
设二分出的值为\(mid\),
则应有$$\frac{\sum_{i=1}na_i*x_i}{\sum_{i=1}nb_i*x_i}\geq mid$$
化化式子

\[\sum_{i=1}^na_i*x_i\geq mid*\sum_{i=1}^nb_i*x_i \]

\[\sum_{i=1}^na_i*x_i-mid*\sum_{i=1}^nb_i*x_i\geq0 \]

于是只要找出一组\(a_i-mid*b_i\geq0\),就能说明\(ans\geq mid\),缩小了二分范围。

实现

一般都是边权设为\(a_i-mid*b_i\),然后判图中是否有负环,或者网络流看能否跑出正费用。

题目

posted @ 2018-08-26 00:15  小蒟蒻ysn  阅读(136)  评论(0编辑  收藏  举报