1183 泥濘的道路時間限制: 1 s
空間限制: 128000 kb
題目等級 :鑽石 diamond
傳送門題目描述 description
cs有n個小區,並且任意小區之間都有兩條單向道路(a到b,b到a)相連。因為最近下了很多暴雨,很多道路都被淹了,不同的道路泥濘程度不同。小a經過對近期天氣和地形的科學分析,繪出了每條道路能順利通過的時間以及這條路的長度。
現在小a在小區1,他希望能夠很順利地到達目的地小區n,請幫助小明找出一條從小區1出發到達小區n的所有路線中(總路程/總時間)最大的路線。請你告訴他這個值。
輸入描述 input description
第一行包含乙個整數n,為小區數。
接下來n*n的矩陣p,其中第i行第j個數表示從小區i到小區j的道路長度為pi,j。第i行第i個數的元素為0,其餘保證為正整數。
接下來n*n的矩陣t,第i行第j個數表示從小區i到小區j需要的時間ti,j。第i行第i個數的元素為0,其餘保證為正整數。
輸出描述 output description
寫入乙個實數s,為小區1到達n的最大答案,s精確到小數點後3位。
樣例輸入 sample input
3 0 8 7
9 0 10
5 7 0
0 7 6
6 0 6
6 2 0
樣例輸出 sample output
2.125
資料範圍及提示 data size & hint
【資料說明】
30%的資料,n<=20
100%的資料,n<=100,p,t<=10000
分類標籤 tags
二分法 最短路 圖論
/*
二分答案+spfa最長路判正環.
好題.先處理出乙個ans.
然後二分答案.
判出現正環或者能跑通整個圖.
*/#include
#include
#include
#define maxn 101
#define maxm 200001
using
namespace
std;
double g[maxn][maxn],s[maxn][maxn],tot,ans,dis[maxn],t[maxn][maxn];
int n,m;
bool b[maxn];
bool spfa()
; int head=0,tail=1;c[1]=1;
q[tail]=1,dis[1]=0,b[1]=true;
while(headint u=q[head];
for(int i=1;i<=n;i++)}}
b[u]=false;
}if(dis[n]>0) return
true;
return
false;
}bool slove(double x)
if(spfa()) return
true;
return
false;
}double erfen()
else r=mid;
}return ans;
}int main()
Codevs 1183 泥濘的道路
1183 泥濘的道路 時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 題解 檢視執行結果 題目描述 description cs有n個小區,並且任意小區之間都有兩條單向道路 a到b,b到a 相連。因為最近下了很多暴雨,很多道路都被淹了,不同的道路泥濘程度不同。小a經過...
codevs1183泥濘的道路
題意 給定一張有向稠密圖和通過每條邊的時間和路程,問從1到n的路程 時間 最大為多少 正解 spfa 二分答案 開始做的時候,想直接跑圖論,後來發現好像不對 不然資料範圍怎麼這麼小 但是顯然要用到圖論,機智的我就想到了二分答案。考慮,假如有乙個ans,那麼如果存在length i time i an...
Codevs1183 泥濘的道路
cs有n個小區,並且任意小區之間都有兩條單向道路 a到b,b到a 相連。因為最近下了很多暴雨,很多道路都被淹了,不同的道路泥濘程度不同。小a經過對近期天氣和地形的科學分析,繪出了每條道路能順利通過的時間以及這條路的長度。現在小a在小區1,他希望能夠很順利地到達目的地小區n,請幫助小明找出一條從小區1...