poj3621 最優比率環

2022-03-21 02:35:10 字數 1017 閱讀 2605

這道題的意思是給你乙個圖, 有點權和邊權, 你的任務是求乙個圈, 使得這個圈的點權和比邊權和最大,我們依然可以使用01規劃的知識, 將一條邊的權值變為ai-mid*bi, 看看這個圖裡面有沒有正環, 有的話說明還存在更優的解, 這裡的正環問題可以將邊權值取反變成負環問題, **如下:

#include #include 

#include

#include

#include

using

namespace

std;

const

double eps = 1e-4

;const

int maxn = 1000 + 10

;const

int inf = 0x3fffffff

;int

n, m;

double

vw[maxn];

struct edge;

vector

g[maxn];

bool inque[maxn]; //

是否在佇列中

double dis[maxn]; //

最短路長度

int cnt[maxn]; //

入隊次數

bool spfa(double

mid)

queue

que;

que.push(1);

inque[

1]=true; dis[1]=0

;

while(!que.empty())}}

}return

false; //

不存在}

intmain()

); }

double l=0, r=high+5

;

while(r-l >=eps)

printf(

"%.2f\n

", l);

return0;

}

poj 3621 最優比率環

思路 之前做過最小比率生成樹,也是屬於0 1整數劃分問題,這次碰到這道最優比率環,很是熟悉,可惜精度沒控制好,要不就是wa,要不就是tle,鬱悶啊!實在是懶得碼字,直接copy吧 題目的意思是 求乙個環的除以,使得那個環在所有環中除以最大。令在乙個環裡,點權為v i 對應的邊權為e i 即要求 i ...

POJ 3621 二分 判定負環

題意 傳送門 poj 3621 sightseeing cows 題解二分答案,問題轉化為判定滿足圖中存在乙個環,滿足下式的最大的 xxx fi t j x frac x tj f i x 若環上存在重複經過的點,其 f if i fi 只算一次,圖中點 邊數量不同。出現上述情況時,環由至少兩個簡單...

最優比率環 最優比率問題

給定有點權和邊權的圖,要求找乙個環,使環的點權和與邊權和的比值最大。此時求最大比率的式子與01規劃的式子有所不同 總算式加個負號 核心 取定乙個 r 值以後,帶入最短路的新的dis更新公式,再判斷是否存在至少乙個負環 找出乙個負環即可 存在負環和不存在負環兩種情況指示了 r 應如何取下乙個值,直到到...