求助
查看原帖
求助
636409
Headofstate1945楼主2023/10/28 09:16
#include<bits/stdc++.h>
using namespace std;
const int N=2e3+5;
vector<pair<signed,signed>>g[N];
double dis[N];
signed n,m,s,e;
bool vis[N];
void dijk(){
	priority_queue<pair<double,signed>>q;
	q.push({1,s});
	dis[s]=1;
	while(q.size()){
		signed u=q.top().second;
		q.pop();
		if(vis[u])continue;
		vis[u]=1;
		for(auto [v,w]:g[u]){
			if(dis[v]<dis[u]*w/100){
				dis[v]=dis[u]*w/100;
				q.push({dis[v],v});
			}
		}
	}
	
	printf("%.8lf\n",100/dis[e]);
	
}

signed main(){
	ios::sync_with_stdio(0);
	cin>>n>>m;
	for(signed i=1;i<=n;i++){
		signed x,y,z;
		cin>>x>>y>>z;
		z=100-z;
		g[x].push_back({y,z});
		g[y].push_back({x,z});
	}
	cin>>s>>e;
	dijk();
	return 0;
}

全wa求助

2023/10/28 09:16
加载中...