大佬们,我的代码输出1.#INF咋办
查看原帖
大佬们,我的代码输出1.#INF咋办
486521
zhangxisu楼主2024/5/19 17:00
#include<bits/stdc++.h>
using namespace std;
typedef pair <int,double> PID;
typedef double db;
int n,m,a,b;
db d[10005];
bool vis[10005];
vector <PID> v[10005];
priority_queue <PID,vector <PID>,less <PID> > pq;
void dijk() {
	d[a]=1;
	pq.push(make_pair(d[a],a));
	while (!pq.empty()) {
		int u=pq.top().second;
		pq.pop();
		if (vis[u]) continue;
		vis[u]=true;
		for (int j=0; j<v[u].size(); j++) {
			int y=v[u][j].first;
			int l=v[u][j].second;
			if (d[y]<d[u]*l) {
				d[y]=d[u]*l;
				pq.push(make_pair(d[y],y));
			}
		}
	}
}
int main() {
	scanf("%d%d",&n,&m);
	for (int i=1; i<=n; i++) {
		int x,y;
		db z;
		scanf("%d%d%lf",&x,&y,&z);
		v[x].push_back(make_pair(y,1-z/100));
		v[y].push_back(make_pair(x,1-z/100));
	}
	cin>>a>>b;
	dijk();
	printf("%.8lf",100/d[b]);
	return 0;
}
2024/5/19 17:00
加载中...