浅谈01分数规划
LZC Lv4

01分数规划

什么是01分数规划?

分数规划用来求一个分式的极值。

给出aia_ibib_i,求一组wiw_i ∈ {0,1},最小化或最大化

i=1nai×wii=1nbi×wi\frac{\sum_{i=1}^n a_i \times w_i}{\sum_{i=1}^n b_i \times w_i}

另一种描述:每种物品有两个权值aabb,选出若干个物品使得ab\frac{\sum a}{\sum b} 最大/最小。

在图论问题(求负环、最小生成树和最短路)中类似于ab\frac{\sum a}{\sum b}这样形式的题,称为01分数规划

有什么用?

做图论题会用到

怎么用?

二分

例如 观光奶牛 这道题
判断图中是否存在环CC,使得ab>mid\frac{\sum a}{\sum b} \gt mid
ab>mida>mid×bamid×b>0\frac{\sum a}{\sum b} \gt mid \Leftrightarrow \sum a \gt mid \times \sum b \Leftrightarrow \sum a - mid \times \sum b \gt 0
所以公式可以转换为:(aimid×bi)>0)图中是否存在正环\sum(a_i - mid \times b_i) \gt 0) \Leftrightarrow 图中是否存在正环

01分数规划思路

1
2
3
1. 二分出一个常值
2. 整理不等式,重新定义点权/边权
3. 做图论算法

参考文献:
OI Wiki分数规划