0分求调
蒟蒻自我感觉没错,样例都不对
感谢各位大佬
#include<bits/stdc++.h>
using namespace std;
const int N=2010;
const int INF=1e9;
double G[N][N], dis[N];
bool vis[N];
int n,m,i,j,k,x,y,minn;
void dijkstra(int x)
{
memset(dis,0,sizeof dis);
memset(vis,0,sizeof vis);
for(int i=1;i<=n;i++)
{
dis[i]=G[x][i];
}
dis[x]=1;
vis[x]=1;
for(int i=1;i<=n-1;i++)
{
int minn=INF;
for(int j=1;j<=n;j++)
if(!vis[j] && dis[j]<INF)
{
k=j;
minn=dis[j];
}
vis[k]=1;
if(k==y)
{
break;
}
for(int j=1;j<=n;j++)
{
if(vis[j]==0 && dis[k]*G[k][j]>dis[j])
{
dis[j]=dis[k]*G[k][j];
}
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>j>>k;
cin>>G[j][k];
G[j][k]=(100-G[j][k])/100;
G[k][j]=G[j][k];
}
cin>>x>>y;
dijkstra(x);
dis[y]=100.0/dis[y];
cout<<setprecision(8)<<dis[y]<<'\n';
return 0;
}
/*
3 3
1 2 1
2 3 2
1 3 3
1 3
103.07153164
*/