codevs1183泥濘的道路

2022-05-08 08:03:09 字數 1250 閱讀 3242

題意:給定一張有向稠密圖和通過每條邊的時間和路程,問從1到n的路程/時間 最大為多少

正解:spfa+二分答案

開始做的時候,想直接跑圖論,後來發現好像不對(不然資料範圍怎麼這麼小)

但是顯然要用到圖論,機智的我就想到了二分答案。

考慮,假如有乙個ans,那麼如果存在length i / time i >=ans(i屬於路徑上的邊),那麼顯然更優 ,則可發現問題可轉換為如果乙個答案更優,那麼對於以 length i - ans*time i 為權值,重新構的圖中,如果到達n的最長路不小於n,顯然答案可以更優,只需要二分答案就可以了.另外如果有正權環顯然是可以的

唯獨要注意的是,精度要求要滿足題意,顯然不能只分到第三位小數就停了,那樣的話會gi

#include#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn = 101

;int

n;int

tim[maxn][maxn],s[maxn][maxn];

long

double

ju[maxn][maxn];

double

dis[maxn];

bool

vis[maxn];

int num[maxn];//

記錄經過次數,判環

long

double

ans;

//二分答案+spfa

queue

q;inline

intgetint()

inline

bool work(long

double x)}}

}if(dis[n]>=0) return

true;//

存在更優的答案

return

false;}

intmain()

printf(

"%.3lf

",(double

)l);

return0;

}

Codevs 1183 泥濘的道路

1183 泥濘的道路 時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 傳送門題目描述 description cs有n個小區,並且任意小區之間都有兩條單向道路 a到b,b到a 相連。因為最近下了很多暴雨,很多道路都被淹了,不同的道路泥濘程度不同。小a經過對近期天氣和地...

Codevs 1183 泥濘的道路

1183 泥濘的道路 時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 題解 檢視執行結果 題目描述 description cs有n個小區,並且任意小區之間都有兩條單向道路 a到b,b到a 相連。因為最近下了很多暴雨,很多道路都被淹了,不同的道路泥濘程度不同。小a經過...

Codevs1183 泥濘的道路

cs有n個小區,並且任意小區之間都有兩條單向道路 a到b,b到a 相連。因為最近下了很多暴雨,很多道路都被淹了,不同的道路泥濘程度不同。小a經過對近期天氣和地形的科學分析,繪出了每條道路能順利通過的時間以及這條路的長度。現在小a在小區1,他希望能夠很順利地到達目的地小區n,請幫助小明找出一條從小區1...