1. 程式人生 > >[做題手記·分數規劃]POJ 3621-Sightseeing Cows

[做題手記·分數規劃]POJ 3621-Sightseeing Cows

進行 class line sig 知識 其中 NPU math clas

題目描述

無恥地搬運來了某rvalue的翻譯:
給定一個無向帶權圖, 每條邊費用為\(w\), 同時每個結點有一個價值 \(v\) , 求一個至少包含兩個結點的環使得 \(\frac{\sum v}{\sum w}\) 最大.
其中\(|V| \leq 1000\), \(|E| \leq 5000\), \(v,w \leq 1000\)

Sample Input

5 7
30
10
10
5
10
1 2 3
2 3 2
3 4 5
3 5 2
4 5 5
5 1 3
5 2 2

Sample Output

6.00

突破點

聽說這個叫最優比率環,運用分數規劃的思想(長知識了!)
即我們設定一個最大值,使R=\(\frac{\sum v}{\sum w}\)

\(R*{\sum w}-{\sum v}==0\),我們二分進行查找,對於任意\(R‘\),若\(R‘*{\sum w}-{\sum v}\)<0則R‘增大才會接近所求答案,反之讓R‘減小
我們重新構造一幅圖,使得邊權為\(R‘*w-v\),用Spfa判斷是否有負環即可

[做題手記·分數規劃]POJ 3621-Sightseeing Cows