玄关求调

P1576 最小花费

```cpp #include<bits/stdc++.h> #define int long long using namespace std; const int N = 4e5+10; const int inf = 1e9; int n,m,k=1,s,t; struct node{ int v,w,nxt; }e[N]; int head[N],vis[N]; double dis[N]; void add(int u,int v,int w){ e[k].v=v; e[k].w=w; e[k].nxt=head[u]; head[u]=k++; } void dijkstra(int s){ queue<int>q; dis[s]=100.0; vis[s]=1; q.push(s); while(!q.empty()){ int u=q.front(); q.pop(); vis[u]=0; for(int i=head[u];i!=-1;i=e[i].nxt){ int v=e[i].v; if(dis[v]>dis[u]/(1-0.01*e[i].w)){ dis[v]=dis[u]/(1-0.01*e[i].w); if(vis[v]==0){ vis[v]=1; q.push(v); } } } } } signed main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; memset(head,-1,sizeof head); for(int i=1;i<=n;i++) dis[i]=10000000000.0; for(int i=1;i<=m;i++){ int u,v,w; cin>>u>>v>>w; add(u,v,w); add(v,u,w); } cin>>s>>t; dijkstra(s); printf("%.8lf\n",dis[t]); return 0; } ```
by _xYZPx_ @ 2024-02-01 17:16:37


@[Chen20090918](/user/957438)
by _xYZPx_ @ 2024-02-01 17:17:10


@[_xYZPx_](/user/667558) 已AC,感谢
by Chen20090918 @ 2024-02-02 08:19:14


|