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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Find the safest road(HDU-1596)

發(fā)布時間:2025/3/17 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Find the safest road(HDU-1596) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Problem Description

XX星球有很多城市,每個城市之間有一條或多條飛行通道,但是并不是所有的路都是很安全的,每一條路有一個安全系數(shù)s,s是在 0 和 1 間的實數(shù)(包括0,1),一條從u 到 v 的通道P 的安全度為Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的邊 ,現(xiàn)在8600 想出去旅游,面對這這么多的路,他想找一條最安全的路。但是8600 的數(shù)學(xué)不好,想請你幫忙 ^_^

Input

輸入包括多個測試實例,每個實例包括:<br>第一行:n。n表示城市的個數(shù)n<=1000;<br>接著是一個n*n的矩陣表示兩個城市之間的安全系數(shù),(0可以理解為那兩個城市之間沒有直接的通道)<br>接著是Q個8600要旅游的路線,每行有兩個數(shù)字,表示8600所在的城市和要去的城市。

Output

如果8600無法達到他的目的地,輸出"What a pity!",其他的輸出這兩個城市之間的最安全道路的安全系數(shù),保留三位小數(shù)。

Sample Input

3
1 0.5 0.5
0.5 1 0.4
0.5 0.4 1
3
1 2
2 3
1 3?

Sample Output

0.500

0.400
0.500

思路:求一個圖中的最長路,類似模版題,本來想用Dijkstra算法,但算了算時間復(fù)雜度,發(fā)現(xiàn)使用Floyed算法不會超時,果斷使用

Source Program

#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<string> #include<cstdlib> #include<queue> #define INF 9999999999999999999 #define N 1001 #define MOD 1000000007 #define E 1e-12 using namespace std; double g[N][N]; int main() {int n,m;while(scanf("%d",&n)!=EOF){for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%lf",&g[i][j]);for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(i!=k&&j!=i&&j!=k)if(g[i][j]<g[i][k]*g[k][j])g[i][j]=g[i][k]*g[k][j];scanf("%d",&m);for(int i=1;i<=m;i++){int x,y;scanf("%d%d",&x,&y);if(g[x][y]!=0)printf("%.3lf\n",g[x][y]);elseprintf("What a pity!\n");}}return 0; }

總結(jié)

以上是生活随笔為你收集整理的Find the safest road(HDU-1596)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。