poj 2472 106 miles to Chicago
2011-05-03 21:33
489 查看
边的权为不被抓住的概率,注意是概率,需要求的是能逃跑的最大可能
这题与一般的最短路不同,体现在权值上
所以把一般权值的相加改成相乘,利用floyed的算法框架求解
另外注意精度
这题与一般的最短路不同,体现在权值上
所以把一般权值的相加改成相乘,利用floyed的算法框架求解
另外注意精度
#include<stdio.h> #include<string.h> #define MAXN 101 double map[MAXN][MAXN]; //边权用浮点数存 int n, m; void floyed(){ for(int k = 0; k < n; ++k) for(int i = 0; i < n; ++i){ if(i == k) continue; for(int j = 0; j < n; ++j){ if(j == i || j == k) continue; if(map[i][k] * map[k][j] > map[i][j] && map[i][k] && map[k][j]) map[i][j] = map[i][k] * map[k][j]; } } } int main(){ while(scanf("%d",&n) == 1, n){ scanf("%d",&m); int a, b; double w; for(int i = 0; i <= n; ++i) for(int j = 0; j <= n; ++j) map[i][j] = 0; memset(map, 0.0, sizeof(map)); for(int i = 0; i < m; ++i){ scanf("%d%d%lf",&a, &b, &w); map[a - 1][b - 1] = map[b - 1][a - 1] = 0.01 * w; } floyed(); printf("%.6lf percent/n",map[0][n - 1] * 100); } return 0; }
相关文章推荐
- zoj 2792 && poj 2472 106 miles to Chicago
- 【POJ】2472 106 miles to Chicago 最短路
- poj 2472 106 miles to Chicago
- poj 2472 106 miles to Chicago
- POJ 2472 106 miles to Chicago
- POJ 2472 106 miles to Chicago(最短路)
- POJ 2472 106 miles to Chicago
- ZOJ 2797 POJ 2472 106 miles to Chicago
- poj 2472 106 miles to Chicago
- POJ-2472 106 miles to Chicago
- POJ 2472 106 miles to Chicago
- Poj 2472 106 miles to Chicago【Floyd】
- POJ 2472 &&ZOJ 2797 (106 miles to Chicago)
- POJ 2472 106 miles to Chicago(Dijstra变形——史上最坑的最长路问题)
- POJ 2472 106 miles to Chicago(Floyd)
- POJ 2472 106 miles to Chicago
- poj 2472 106 miles to Chicago floyd
- poj 2472 106 miles to Chicago a->b有安全概率,求i->j安全概率最大的一条路
- poj 2472--106 miles to Chicago-最短路flody
- poj 2472 106 miles to Chicago