输出整数,求条
查看原帖
输出整数,求条
1202886
wangjingyaun楼主2025/7/28 13:40

dji模板,阳历输出103.00000000

#include<bits/stdc++.h>
using namespace std;
int n,m;
double dis[50004];
bool vis[50004];
struct node
{
	int u;
	double val;
};
vector<node> e[50004];
bool operator < (const node &a,const node &b)
{
	return a.val>b.val;
}
void dijkstra(int s)
{
	priority_queue<node> q;
	for(int i=1;i<=n;i++)dis[i]=double(INT_MAX);
	q.push((node){s,100.0});
	dis[s]=100.0;
	while(!q.empty())
	{
		node f=q.top();
		q.pop();
		if(vis[f.u])continue;
		vis[f.u]=1;
		for(node k:e[f.u])
		{
			double w=dis[f.u]*k.val;
			if(dis[k.u]>dis[f.u]+w)
			{
				dis[k.u]=dis[f.u]+w;
				q.push((node){k.u,dis[k.u]});
			}
		}
	}
}
int main() 
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int x,y;double z;
		cin>>x>>y>>z;
		e[x].push_back((node){y,z/100.0});
		e[y].push_back((node){x,z/100.0});
	}
	int x,y;
	cin>>x>>y;
	dijkstra(x);
	printf("%.8lf",dis[y]);
//	cout<<dis[y];
}
2025/7/28 13:40
加载中...