Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
162922 | zzj091122 | 银行转帐 | C++ | 通过 | 100 | 1 MS | 292 KB | 663 | 2024-08-08 21:45:44 |
#include<bits/stdc++.h> using namespace std ; double a[1005][1005],dis[1005],f[1005],maxn; int k; int main(){ int n,m; cin>>n>>m; while(m--){ int x,y,z; cin>>x>>y>>z; a[x][y]=a[y][x]=0.01*(100-z) ; } int x,y; cin>>x>>y; for(int i=1;i<=n;i++){ dis[i]=a[x][i]; } dis[x]=1; f[x]=1; for (int i=1;i<n;i++){ maxn=0; for(int j=1;j<=n;j++){ if(f[j]==0&&dis[j]>maxn){ k=j; maxn=dis[j]; } } f[k]=1; if (!(k-y)){ break; } for(int j=1;j<=n;j++){ if(f[j]==0&&dis[k]*a[k][j]>dis[j]){ dis[j]=dis[k]*a[k][j]; } } } cout<<fixed<<setprecision(8)<<100/dis[y]<<endl; return 0 ; }