Codevs1183 泥濘的道路

2022-05-13 11:38:59 字數 1581 閱讀 2362

cs有n個小區,並且任意小區之間都有兩條單向道路(a到b,b到a)相連。因為最近下了很多暴雨,很多道路都被淹了,不同的道路泥濘程度不同。小a經過對近期天氣和地形的科學分析,繪出了每條道路能順利通過的時間以及這條路的長度。

現在小a在小區1,他希望能夠很順利地到達目的地小區n,請幫助小明找出一條從小區1出發到達小區n的所有路線中(總路程/總時間)最大的路線。請你告訴他這個值。

第一行包含乙個整數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,其餘保證為正整數。

寫入乙個實數s,為小區1到達n的最大答案,s精確到小數點後3位。

0 8 7 

9 0 10 

5 7 0 

0 7 6 

6 0 6 

6 2 0

2.125

【資料說明】

30%的資料,n<=20

100%的資料,n<=100,p,t<=10000

直接跑最短路記錄v是錯誤的,後效性,就像兩個溶液,c1+c2大,不一定混合就大(可能乙個v很大)

對於這種分數題,很直接想到二分答案

∑p/∑t>ans(check滿足),移過去,拆開,p[i]>ans×t[i],p[i]-ans×t[i]>0,以p[i]-ans×t[i]為關鍵字跑1~n的最長路即可(注意判斷正權環)

1

//this file is made by yjinpeng,created by xuyike's black technology automatically.2//

3//i don't know what this program is.

45 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13

#define mod 1000000007

14#define inf 1e9

15#define eps 1e-5

16using

namespace

std;

17 typedef long

double

lb;18

const

int maxn=110;19

const

int maxm=100010

;20 inline int

gi()

27int

p[maxn][maxn],t[maxn][maxn],num[maxn];

28 queueq;lb d[maxn];int n;bool

u[maxn];

29bool

check(lb k)41}

42return d[n]>=0;43

}44intmain()

45printf("

%.3lf

",double

(r));

61return0;

62 }

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泥濘的道路

題意 給定一張有向稠密圖和通過每條邊的時間和路程,問從1到n的路程 時間 最大為多少 正解 spfa 二分答案 開始做的時候,想直接跑圖論,後來發現好像不對 不然資料範圍怎麼這麼小 但是顯然要用到圖論,機智的我就想到了二分答案。考慮,假如有乙個ans,那麼如果存在length i time i an...