#include<bits/stdc++.h>
using namespace std;
double dis[2005][2005],c[2005];
bool f[2005]={0};
int main()
{
int n,m;cin>>n>>m;
for (int i=1;i<=m;++i)
{
int x,y;cin>>x>>y;
cin>>dis[x][y];
dis[x][y]=(100-dis[x][y])/100;
dis[y][x]=dis[x][y];
}
int s,t;cin>>s>>t;
for (int i=1;i<=n;++i) c[i]=dis[s][i];
c[s]=1;
f[s]=1;
while(!f[t])
{
int maxx=0;
int k;
for (int i=1;i<=n;++i)
if (!f[i]&&c[i]>maxx)
{
maxx=c[i];
k=i;
}
f[k]=1;
for (int j=1;j<=n;j++)
if (c[k]*dis[k][j]>c[j]&&!f[j])
c[j]=c[k]*dis[k][j];
}
printf("%0.8lf",100/c[t]);
return 0;
}
``
样例输出:103.09278351