日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

codevs 1183 泥泞的道路 二分+SPFA最长路

發布時間:2025/6/17 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 codevs 1183 泥泞的道路 二分+SPFA最长路 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述 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

#include<iostream> #include<cstdio> #include<queue> #include<cstring> using namespace std; const int MAXN = 233; int p[MAXN][MAXN], t[MAXN][MAXN],c[MAXN], n; double d[MAXN], f[MAXN][MAXN]; bool used[MAXN]; queue < int > q;bool spfa(int s) {memset(d, -0x3f, sizeof(d));memset(used, 0, sizeof(used));memset(c, 0, sizeof(c));d[s] = 0;q.push(s);used[s] = 1;while(!q.empty()){int u = q.front();q.pop();for(int i = 1; i <= n; i++){if(p[u][i] && d[u] + f[u][i] > d[i]){d[i] = d[u] + f[u][i];if(!used[i]){q.push(i);used[i] = 1;c[i]++;if(c[i] > n)return true;}}}used[u] = 0;}if(d[n] > 0)return true;return false; }bool check(double mid) {memset(f, 0, sizeof(f));for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++)f[i][j] = p[i][j] - mid * t[i][j];if(spfa(1))return true;return false; }int main() {scanf("%d", &n);for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++)scanf("%d", &p[i][j]);for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++)scanf("%d", &t[i][j]);double l = 0, r = 100000;double jd = 0.0001;while(r - l > jd){double mid = (l + r) /2;if(check(mid))l = mid;elser = mid;}printf("%.3lf", l);return 0; }

轉載于:https://www.cnblogs.com/Loi-Vampire/p/6017062.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的codevs 1183 泥泞的道路 二分+SPFA最长路的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。