RT
#include<cstdio>
#include<iostream>
#define inf 20000000
using namespace std;
double map[2005][2005],d[2005],ten[9]={1,10,100,1000,10000,100000,1000000,10000000,100000000};
bool f[2005];
int main(){
freopen("1576_1.in","r",stdin);
// freopen("1576-1.out","w",stdout);
int n,m,tx,ty,t;
scanf("%d%d",&n,&m);
for(int i=0;i<m;i++){
scanf("%d%d",&tx,&ty);
scanf("%d",&t);
map[tx-1][ty-1]=1/(1-t*0.01);
}
puts("-");
scanf("%d%d",&tx,&ty);
t=0;
for(int i=0;i<n;i++){d[i]=inf;f[i]=false;}
puts("-");
d[tx-1]=1;
puts("-");
for(int i=0;i<n;i++){
int p=inf,k;
for(int j=i;j<n;j++){
if(!f[j]&&d[j]<p){p=d[j];k=j;};
if(p==inf)break;
f[k]=true;
}
for(int j=0;j<n;j++)if(!f[j]&&d[k]*map[k][j]<d[j]){d[j]=d[k]*map[k][j];}
}
printf("%.8f",d[ty-1]);
return 0;
}
目前代码输出两个"-",注释掉
for(int j=0;j<n;j++)if(!f[j]&&d[k]*map[k][j]<d[j]){d[j]=d[k]*map[k][j];}
后一个“-”都没了
真就玄学呗