(floyed反求最长路径)ZOJ 2797 106 miles to Chicago

来源:互联网 发布:csgo举报机器人软件 编辑:程序博客网 时间:2024/05/29 09:43

查看原题

题意

每行最后跟一个走这条街会被抓到的概率,问从1走到尾点,不被抓到的概率最大是多少

思路

代码

#include <iostream>#include <stdio.h>using namespace std;int main(){    int n,m,a,b;    double c;    while(cin>>n>>m&&m+n!=0){        double map[105][105];        for(int i=1;i<=n;i++){            for(int j=1;j<=n;j++){                map[i][j]=0;            }        }        while(m--){            cin>>a>>b>>c;            if(c>map[a][b]){                map[a][b]=map[b][a]=c/100;            }        }        for(int i=1;i<=n;i++){//核心代码            for(int j=1;j<=n;j++){                for(int k=1;k<=n;k++){                    if(map[j][k]<map[j][i]*map[i][k]){                        map[j][k]=map[j][i]*map[i][k];                    }                }            }        }        printf("%.6f percent\n",map[1][n]*100);    }    return 0;}
0 0